WEB Tasarımı Kursu ve Programlama Kursu (ASP)

Embed Size (px)

Citation preview

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    1/25

    1

    KARYERMESLEK

    ETMKURSU

    WEBTASARIMI VE

    PROGRAMLAMA

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    2/25

    2

    ASP (ACTIVE SERVER PAGES) PROGRAMLAMA DLASP server-Side Tabanl bir dildir. Yani Sunucu tarafnda yorumlanr. Ve bu sayede kimsekaynak kodlarnza ulaamaz.

    Bu yle oluyor; siz URL hanesine adresi girdiinizde bana falanca dosyay bul,ar ve yorumla diye bir istemde bulunuyorsunuz. ( Bu durumda siz client-side yaniistemci oluyorsunuz. ) Serverda (Sunucu ) kendisinden icra etmesini istediiniz dosyayarar bulur ve eer bulursa bu dosyay hemen "asp.dll" adl bir programa iletir. Asp.dll'deald bu dosyay hemen yorumlamaz nce serverda bulunan "Global.asa" adl dosyannalp almadna bakar.

    Global.asa ne mi diyeceksiniz. Global.asa'da dier asp dosyalar gibi aslnda dzbir text dosyasdr ama fark udur. ASP dosyalarnn alma kurallarn belirler.

    Asp.dll nce gelen dosyada hangi script dilinin kullanldna bakar. Ve buna grekendini hazrlar. Nereden mi anlar? ASP veya Java dosyalarnda ScriptLanguage diye birsatr var ite buradan anlar. Asp.dll sonra bu derledii bilgileri tamamen asp kodlarndanayrlm temiz bir halde browser'a gnderir. Bizde bylece sadece HTML kodlarn grrz.

    ASP yazmak iin iki dil kullanabiliriz. Bunlar; Visual Basic Script ve Java Scripttir. Fakat uanda dnyada en geerli olan Visual Basictir. in bir ilgin yan da udur. NormaldeNetscape ASP Scriptini yorumlayamaz. Ama bizim kodlarmzda byle bir korkumuzyoktur. nk "asp.dll" Browsera VB kodlarndan tamamen arndrlm yorumlanmtertemiz bir HTML sayfas gnderir. Ve bylece bizim de acaba netscape olanda alacakm diye bir korkumuz kalmaz.

    STATK SAYFA NEDR? Statik sayfa onu oluturan kiinin ( webmaster ) bu sayfannieriini bitirdii tamamlad ve kullanclarn bu sayfaya her uradklarnda ayn ieriigrd sayfalardr. eriklerinin deimesi iin yeniden tasarlanlmalar gereklidir. Buzaman ve i gc kaybna yol aan bir etkendir.

    DNAMK SAYFA NEDR? erii tamam ile nceden belirlenmi baz kriterlere bal

    olarak deien sayfalar dinamik sayfalar olarak adlandrabiliriz. Bu deiiklik sayfannald baz girdilere gre olabilir.

    KSEL WEB SERVER (IIS) KURULUMU

    Adm 1: ncelikle yandaki resimde grdnzgibi "Balat"a tklyoruz ve daha sonra balatmensnden "Denetim Masas" na tklayarakdenetim masas penceresini ayoruz.

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    3/25

    3

    Adm 2: Denetim Masasna girdikten sonra"Program Ekle veya Kaldr" a Tklyoruz.

    Adm 3: Burada Program Ekleveya Kaldra Girdikten sonrasoldaki;1. ksmdaki gibi "WindowsBileenlerini Ekle/Kaldr"' atklyoruz daha sonra,

    2. Ksmdaki gibi "Bileenlerksmnda Internet InormationServices (IIS)" Buluyoruz veyanndaki kutucuuiaretliyoruz,

    3. Ksmdaki gibi "ileri"diyoruz.

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    4/25

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    5/25

    5

    rnek:For fontBoyut = 1 To 7FOR FONTBOYUT = 1 TO 7for fontboyut = 1 to 7

    Fakat bu demek deildir ki, VBScript ile kodlamann kendi gelenekleri yok!

    VBScriptiler genellikle komutlarn birinci harfini byk yaparlar. For gibi. Deikenadlarnda ise kendinize anlaml gelen bir biim tutturabilir ve yle devam edebilirsiniz.

    Eer bir kod satr ok uzun geliyor ve daha sonra anlalmas imkansz derecedeuzuyorsa, bu satr alt izgi (_ ) ile aa satrda devam ettirebilirsiniz.

    rnek: 1 And _

    deisken1 < 10 Then%>

    DEKENLERyi programclk deikenlerin nceden beyan edilmesini gerektirir. Bunu DIM

    komutuyla yaparz. DIM, Dimension ( boyutlandr ) kelimesinden ksaltlmtr. Pek akllcagrnmese de bu komut, bilgisayarn deiken yeri olarak bir bellek alannn boyutunubelirtmesini salar.

    Deikenlere verilecek isimlerin anlalr olmas programn okunulurluunukolaylatrr. Ayrca deiken tanmlamalar ile ilgili baz kurallar mevcuttur. Bu kurallaraada verilmitir:

    1- Deiken ismi bir harf ile balamaldr Ad1, Ad2 eklinde deiken tanm yaplabilirfakat 1Ad veya 2Ad kullanm yanltr.

    2- Deiken isminde boluk bulunamaz. Bunun yerine alt izgi karakteri kullanlabilir.Adi_Soyadi doru bir kullanm fakat Adi Soyadi gibi arasnda boluk ieren deiken

    tanm yaplamaz.3- Deikene verilecek isim Vbscript komutlarn ieremez. Yani dim, for, array gibi isimlerbir deiken ismi olamaz.

    4- Deiken ismi 255 karakterden fazlada olamaz.

    rnek:

    DZ DEKENLERVBScriptin kullanlmaya hazr bir ok fonksiyonu vardr. Bunlardan biri olan Array

    ile kolayca dizi deiken oluturabiliriz. Diyelim ki, Gunler(6 ) dizi deikenini gn adlarile doldurarak oluturmak istiyoruz.

    rnek:

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    6/25

    6

    ile hem dizi deikeni oluturabiliriz, hem de deerlerini atayabiliriz. Bu suretleoluturduumuz dizi deikenin yelerine daha sonra sra numaralar ile atftabulunabilirsiniz.

    rnek-1:

    bize Perembeyi verir. Neden? nk hayatlarnn byk blmn penceresizortamlarda geiren kiiler olan dil tasarmclar, say saymaya biz normal insanlar gibi1den deil 0dan balarlar; dolaysyla gunler dizi deikeni gunler(0 )dan balar.

    rnek-2:

    Bize Pazartesi, Sal ve arambay verir.

    OPERATRLER:Bir programlama dilinde veya scriptini kullanarak artimetik ve lojik ilemleri

    yapmak iin gerekli operatrler bulunur. Vbscripte de baz ilemler operatrlerleyaplrken bazlar ise fonksiyonlarla yaplr.

    OPERATR

    LEV RNEK IKTISI

    = Atama X=5 5+ Toplama 10+5 15- karma 10-5 5

    * arpma 3*4 12/ Blme 5/2 2,5\ Tam Blme 5/2 2& String Toplama

    (Birletirme)Kaynes&Kariyer

    KaynesKariyer

    st 42 16Mod Blmede Kalan 7Mod2 1And Ve

    Tesadf SayBilgisayarn matematik ilemlerde, zellikle istatistik hesaplamalarla kullanlmas

    tesadf (rastlantsal ) say retmeyi gerekli klmt. Fakat daha sonra bilgisayar oyunlarbu ilemi adeta zorunla hale getirdi. Rastlantsal say, bir dizide tekrar etmesi belirli birdzene tabi olmayan say demektir. Bilgisayar yokken, tesadf say tablolarmatematikiler tarafndan uzun uralarla retilirdi. VBScript, bu amala Visual BasicinRandomize ve Rnd komutlarn almtr. Randomize, tesadf say retme srecini balatr;Rnd de bu sayy size verir. Kodunuzda bir yerde Rnd kullanacaksnz, ondan nce biryerlerde mutlaka Randomize komutunun yer almas gerekir. Bunun bir uygulamas uolabilir:

    rnek:

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    7/25

    7

    rnek

    rnek:Rastgele sz

    ART KOMUTLARIf Then ElseBu komut art komutudur. Trke karl eerdir. Mant ise eer art doruysa unuyap, doru deilse unu yap eklindedir. f komutu End if ile biter, artn salanmamasdurumunda ise Else kullanlr. Genel yazm kural yledir:

    If art Then[art doru ise yaplacak iler]

    Else[art doru deilse yaplacak iler]

    End If

    rnek:=50 then

    response.write(Tebrikler snf getiniz)else

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    8/25

    8

    response.write(zgnm snf tekrar)end if%>

    rnek:

    rnek:Giri SayfasKulalnc adnzParolanz

    rnek:

    Select CaseOlaslk says artan daha karmak bir yapda if...then yaps karmak bir zmolacaktr. Byle durumlarda Select...Case yaps daha uygun bir zm olarak kullanlr.

    rnek:

    rnek

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    9/25

    9

    DNGLERFor - Next dngsProgramn bir ii belirli kere yapmasn istiyorsak ona yapaca ii bir saya deikeniylebirlikte For dngsyle bildiririz:.

    For sayac = balang To son Step adm...yaplacak iler...

    Next

    Burada sayac deeri yerine istediiniz bir ad yazabilirsiniz. Balang yerine sayacnbalamasn istediiniz sayy, son yerine sayacn durmasn istediiniz sayy, adm yerinede sayacn kaar kaar artmasn istediinizi yazabilirsiniz. Sondaki Next deyimi isedngnn bir sonraki adma gemesini salar. Burada bir de Step kelimesi varsa,karsndaki deer kadar arttrlr ve yaplacak iler tekrarlanr.

    Bir rnek yapalm ve dg olayna daha derinlemesine bakalm.rnek:

    rnek

    Do Until - Loop DngsBir iin belirtilen koul doru olana kadar, yani koul salanana kadar yaplacangsteren dng trdr.Kullanm:

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    10/25

    10

    Deikeni yazdrDeikeni arttrLoop%>

    rnek:

    10Response.Write(i)Response.Write(
    )i=i+1Loop%>

    Do While - Loop DngsBu dng Do Until Loop dngs ile ayn ilemi yapmaktadr. Arasndaki tek fark budngde koul doru olduu srece ilem yaplyor. Do Until Loop dngsnde isekoulun doruluu salanana kadar ilem yaplyordu.

    Kullanm:

    rnek:

    i=1Do While i

    For Each - NextSaya kullanmayan For Each dngs For Next dngs gibi alr. Bir dizi deikeninbtn deerleri iin bir kere alr. Dizi-deikenler, ASP ile kodlamada nemli yer tutar.rnein bir snftaki rencilerin veya mterilerimizin listesi bir dizi deikenin

    elemanlar olabilirler. lem, dizi-deikenin btn elemanlar iin tekrar edilecekse, ForEach..Next dngs daha elverili olabilir. Bir dizi-deikenin eleman says ilerdedeiirse ve siz dngy For..Next ile kurmusanz dngnn sayac iin verdiiniz iin altve st snr deitirmek zorunda kalrsnz. Oysa For Each, ka kere tekrar edeceineilikin deeri her zaman dizi-deikenin elemanlarn saysndan alr. rnein, btnrencilerin listesini tutan grenciler dizi-deikeninin btn elemanlarnn deeriniekrana yazdralm:

    For Each Ogrenci In OgrencilerResponse.Write OgrenciNext

    Burada Ogrenci Ogrenciler dizi-deikeninde dngnn her admnda okunan birelemann deerini tutar. For Each dngs tarafndan okunmakta olan dizi-deikeninher bir deeri srayla bu deikene yazlacaktr.

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    11/25

    11

    Net bir rnek vereyim, imdi olay anlayacaksnz.

    rnek-1:

    rnek-2:

    rnek-3:

    TARH VE SAATBelki de Webin zamana ok bal oluu dolaysyla, Visual Basicin hemen hemen btnzaman - tarih fonksiyonlar VBScriptte de kullanlr.Date: Bugn tarihini verir. (01.02.2011 gibi )Time: O andaki saati verir. (22:24:40 gibi )Now: O andaki tarih ve saati birlikte verir. (01.02.2011 22:24:40 gibi )

    VBScriptin buna ek olarak Weekday (haftann gn ), WeekdayName (gnn ad ) veMonthname (ayn ad ) fonksiyonlar da vardr. Bu fonksiyonlar deerlerini Datefonksiyonuna gre alrlar.

    rnein; komutu bize bugn sal ise "Sal" deerini

    verir.

    komutu bize bu ay ubat ise "ubat" deeriniverir.

    VBScriptin bunlara ek olarak Day (gn ), Month (ay ) veYear (yl ) fonksiyonlar dadeerlerini Date fonksiyonundan alarak, size bir rakam verirler. Eer tarih 01 ubat 2011ise;... 10... 11... 2009deerini verir. VBScript, bu deerleri doruca iletim sisteminden alr. Dolaysyla iletimsisteminin blgesel ayarlar Trkiye iin yaplmsa, gn adlar Trke olarak dnecektir.

    Ayrca, tarih ve saat biimleri de blgesel ayarlara bal olarak, ay nde, gn arkada veyatersi, saat de 12 saat veya 24 saat esasna gre dner. ASP programlarnz kiisel Web

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    12/25

    12

    Serverda denerken kendi bilgisayarnzn tarih ve saatini gerek Internette altrrkenServern tarih ve saatini alrsnz. Sayfalarnzda ay ve gn adlarn Trke grntlemekiin nce Servern blgesel ayarlarn snamanz ve eer isimler Trke gelmiyorsa bunlareviren Sublar veya fonksiyonlar yazmanz gerekebilir.

    PAGE.COUNTER

    rnek:

    Bu Web sayfas kez grntlenmitir.

    REQUEST NESNELERRequest Objesi:Request objesi bilgi toplamak amal kullanlan bir objedir. Detayl olarak anlatlacakolmasna ramen bu obje iersinde (koleksiyon ) yer alan metotlara ksaca bakalm.

    1- Querystring: Eer gnderilen bilgi url iersinde bulunan dosya ismi ile birliktetanyorsa baka bir ifadeyle bilgi formu metodundan "GET" ile gnderiliyor iseQuerystring metodu bu bilginin elde edilmesi iin kullanlr.

    2- Form: Eer bilgi Form ierisinde "POST" metodu ile gnderiliyor ise bilginin eldeedilmesi iin kullanlan bir metodudur.

    4- Cookies: Eer client browser server dan gelen cookileri ( erez:text dosyalar ) kabulediyor ise bu bilgi web server a cookie koleksiyonu ierisinde ular.

    QueryString KoleksiyonuQuerystring server a iletilen bilgi kmecii metotlarndan biridir. Bu iletiim browser nadres hanesinde yer alan dosya adna "?" ve "&" iaretleri vastas ile bilgilerin eklenmesisuretiyle gerekleir.Genel kullanm :filename.asp?kullanici=Mehmet eklindedir.

    Eer daha fazla bilgi bir anda gnderilmek isteniyor ise bu "&" iareti kullanlarak;filename.asp?kullanici=Mehmet &[email protected] eklinde gerekletirilir.

    "&" iareti bilgilerin birbirinden ayrlmasn salar. Kullanc ad ve soyadn alan vebunlar Querystring metodu ile ilgili forma gnderecek bir form dizayn edelim. lgili Htmlformu aadaki gibi olmaldr;

    Ltfen Adnz Giriniz:
    Ltfen Soyadnz Giriniz:

    Yukardaki kod ad soyad alanlar bulunan bir form elde etmemizi salar.Bu Html kodu ierisinde yer alan input submit butonu bu kutucuklara girilen bilgileri actionksmnda belirtilen Querystring.asp ye "GET"metodu kullanlarak gnderilir. (Yani bilgiler

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    13/25

    13

    browser n adres hanesi kullanlarak iletilir. ) Bu bilgilere ulamak iinse Request inQuerystring metodu aadaki ekilde kullanlr.

    Request.Querystring ("istek gnderen formdaki Html elemannn ad" ) bu genelkullanma gre eer biz "..." ierisine o formda yer alan bir kontroln adn koyar, istek oinput alanna girilmi veriye ularz, yani Request. Querystring ("adi" ) eklinde bir

    kullanm "adi" adl text boxa girilen veriye; Request. Querystring ("soyadi" )eklindebir kullanm ise "soyadi" ad verilen textbox a girilen veriye ulamamz salar. EerResponse nesnesinin Write metodunu kullanrsak login formuna girilen verileri;eklinde ekrana yazabiliriz.

    Dikkat edecek olursanz "&" iareti "
    " Html etiketini formdan gelen adiverisine eklemek iin kullanlmtr. Bu da bize 1 satr aaya gememizi salar (satrbeslemesi ) salar. Koleksiyon birden fazla deer ve deikeni ierisinde bulunduran birgrup olarak tanmlanabilir. Eer Querystring metodu kullanlarak gnderilen deiken(kontrol says ) birden fazla ise bu bir koleksiyon oluturuyor anlam tar. Eer dahanceki notlarmz hatrlayacak olursak koleksiyon oluturan bilgi gruplar veya dizinelemanlar iin kullandmz zel bir dngmz vard. (FOR EACH....NEXT ) bu dngyQuerystring iin uygulanacak olursak ;

    rnek:

    eklinde bir dng ile bize Querystring ile gnderilen tm elemanlar ve bu elemanlarndeerlerini ekrana basabiliriz. Yukardaki dng Request. Querystring ile oluturulan hereleman iin dngy tekrarlar.

    Request. Querystring ("kontrol" ).count zellii gnderilen elemanlar saymak iinkullanlr. Eer bu say"o" a eit ise herhangi bir bilgi gnderilmemi demektir.

    imdi deiik konularda balklarn yer ald ve bu balklar arasndan kullancnnyapt seimlere bal olarak bu konularda kendisine bilgi gnderecei mesajn ekranabasan bir ASP uygulamas oluturalm. Kullancnn seim yapabilecei selectbox n yerald Html formunu dizayn edelim:

    kitap balklar

    Aadaki konu balklarndan ilgilendiklerinizi seiniz.

    Bilgisayar Hikaye iir Roman

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    14/25

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    15/25

    15

    %>

    eklinde bir kullanm browser ekranna "Bugn gnlerden ne?" diye bir mesaj yazar. Aspscript bildiiniz gibi script snrlayclar arasna yazlr. Bu kullanmn iki farklekli vardr. Eer html taglar ierisinde herhangi bir deikenin tad bir deerigrntlemek istiyorsak daha uygun bir kullanm olacaktr. Fakat bu

    kullanmn dezavantaj sadece 1 satrlk bir kodlamaya izin vermesidir. Yani;

    eklinde bir kullanm yanltr. Dolaysyla birden fazla satr ASP kodlamas gerekendurumlarda ASP kodunu satrlar arasna yazmak daha uygun olacaktr.Aadaki rnei inceleyelim.

    Response.write text1 & text2 kullanm iki farkl deiken ierisinde tutulan stringleribirletirerek tek satrda yazmak iin kullanlmtr. "&" iareti iki deikeni birletirmekiin kullanlr. Response.write bir ilemin sonucunu ekrana yazmak iinde kullanlabilir.Aadaki rnei inceleyelim;

    eklinde bir kullanm ekrana 3 yazlmasna neden olur. nk say1 /say2 yani 24/8=3dr ve response.write 3 eklinde bir kullanma edeerdir. Bir formdan bize iletilenbilgileri Request objesini kullanarak alabilir ve gene bu bilgiyi Response objesinin writemetodunu kullanarak ekrana yazabiliriz.

    eklinde bir kullanm bize istek gnderen formdaki text1 adl deikeninin deeriniekrana yazar.

    EREZLERSiteye giriyordunuz. Adam size "sayfay kiiselletir" diye bir link koymu. Tklayp iinizidkyorsunuz. Siteyi bir sonraki ziyaretinizde site size adnza hitaben "merhaba koum,seni tanyorum, bana kendini anlatma, ok iyi bilirim ben seni ... ismin u, sevdiin kalemmarkas Rotring, ban arynca nceden Novalgin alrdn imdi modaya uyup AspirinForte.. monitrn philips marka ve sen simit eklindeki power dmesine gckoluyorsun ... haa bir de bu siteyi 2. ziyaretin ... nerden bildim ama... hahaha" trndenaklabanlklar yapyor. Peki bunu nasl beceriyor? Hepiniz erezlerle olduunubiliyorsunuz.

    ASP ile istemci bilgisayarlara erez yollamak ok basit bir itir. Gerekten okbasit. ASP nin yerleik delikanllarndan RESPONSE nin bu i iin zel bir metodu var.

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    16/25

    16

    COOKIES . stemciye erez yollamak iin bu metodla birlikte anahtar deerler (bir veyaiki ) gnderiyoruz. (bir ayrnt ASP de iki anahtar sadece cookies kolleksiyonundakullanlyor ). imdi rnek kodu inceleyelim;

    Response.cookies("kabuk" )= "Evet, kabuk"

    Response.cookies("kabuklarim" )("adi" ) = "Sedat"Response.cookies("kabuklarim" )("sevdigi_icecek" ) = "algam suyu"Response.cookies("kabuklarim" )("medeni_durumu" ) = "Bekar"Response.Cookies("kabuklarim" ).Expires = Now( ) + 90

    Peki erezi yolladk taraycya. Yani kabuklar. Peki bu kabuklar grmek istediimiz zamanne yapmamz gerekiyor. te o zaman ASP nin dier delikanl nesnesi REQUEST talipoluyor greve. nk bir eyleri talep etmek onun grevi. Biz de ona bir emir vereceiz."erezler arasndan u anahtardaki deeri bana bir getiriver bakaym" denildii anda sizeo deeri getirecektir. Bu metodu kullanma, response ile erez yollamaya ok benzer.Ancak bir fark vardr. Response de ilgili anahtara atama yaplr, burada ise request zatenbize bir deer getirir, biz de bu deeri iimize geldii gibi kullanrz. Aada REQUEST ileerezden bilgi almay gryorsunuz.

    Adim = Request.cookies("kabuklarim" )("adi" )ne_icerim = Request.cookies("kabuklarim" )("sevdigi_icecek" )medeni_halim = Request.cookies("kabuklarim" )("medeni_durumu" )Response.Write Adim & " / " & ne_icerim & " / " & medeni_halim

    sayfadaki kt; Sedat / algam suyu / Bekar

    te bu rneklerde erezle bilgi yollama ve de erezden bilgi alma tekniinin ne kadarkolay olduunu gryorsunuz.

    rnek:

    KSEL ZYARET SAYACI

    SESSONHTML ve Javascript ile biraz oynadysanz, bilirsiniz ki bir sayfadan tekine deiken

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    17/25

    17

    deeri aktarmak, imkansza yakn derecede zordur. Deikenlerin mr, fonksiyonlasnrldr. Bir ASP sayfasnda herhangi bir deikeni fonksiyon dnda tanmlamakla vedeer atamakla onu btn fonksiyonlar iin geerli hale getirebiliriz. Fakat kimi zamanisteriz ki, bir fonksiyonun deeri btn sayfalarda ayn olsun; ziyaretinin sayfadeitirmesi ile deikenin deeri deimesin. Bunu ASPde yapmak ok kolaydr. ASPdebu zorluu yenebilmek iin deikenlerimizi Session nesnesi iin oluturabiliriz; ve bu

    deer ziyaretinin oturumu boyunca devam eder; btn ASP sayfalarndaki btnFonksiyonlar tarafndan bilinebilir. rnein:Session ("Tupras" ) = 44500

    Session Trke oturum demektir. ASPnin zellii artk bildiinizi varsayyorum.ASP Sunucusu Servera balanan, yani bir talepte (Requestde( bulunan her bir ziyaretiyeayr bir oturum ayr bir session aar. Tabii Cookie denetimi yoksa. Ve her Sessiona bir IDverir...

    Sessionn en byk zellii dinamik olmasdr. Yani ziyaretinin sitede bulunduuher saniye Session nesnesi tarafndan takibe alnr. Bu sayede eer gerekten profesyonelplanlamalar yaparken Session nesnesinin metotlarndan bir ok ekilde faydalanacaz...

    Session nesnemizin en byk zellii tanmladmz deikenleri dier geisayfalarnda da kullanabilmemiz iin tutmasdr. Hemen bir rnek yaparak Sessionnesnemize giri yapalm. nce Bir Form Hazrlayalm ve bu formu Session.asp diyekaydedelim.

    rnek:Ltfen Adnz Giriniz:
    Soyadnz:


    Aadaki Kodlar da sessiondevam.asp adyla kaydedelim.

    rnek:

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    18/25

    18

    Session.Contents yardmyla saydryoruz.

    Response.Write (Session.Contents(Icerik ) &"
    ")Sonucu sayfaya Response ederek yazdryoruz. Ve bir
    yaniBreak Line koyarak (Alt satra Gememizi salar. ) Next yordamylasradaki Kaytlar ekrana yazdrmasn salyoruz...

    Next%>

    Bir ASP sayfasn oturum amadan yaplandrmak iin alttaki kodu ekleyebilirsiniz..Deerini True yaparak baka bir sayfada oturumu balatabilirsiniz...

    rnek:

    Session Timeout:Kullanc bir uygulamadaki bir sayfay belirli bir sre istemez ya da yenilemezse, oturumotomatik olarak sona erer. Bu sre iin varsaylan deer 20 dakikadr. Bir uygulama iinvarsaylan deeri, Internet Information Service alma ekindeki Uygulama Seeneklerizellik sayfasnda deitirebilirsiniz.

    rnek:

    Session Abandon:Abandon yntemi, bir Session nesnesinde sakl olan tm nesneleri yok eder vekaynaklarn brakr.

    Abandon yntemini armak istemiyorsanz, sunucu bu nesneleri oturumun sresi

    bittiinde yok eder.rnek:Session.Abandon

    Abandon yntemi arldnda, geerli Session nesnesi silinme iin havuza alnr,ancak geerli sayfadaki komut dosyas komutlarnn tm ilenmeden tam olaraksilinmez.

    Bylece, sonraki Web sayfalar dnda, yalnzca Abandon ynteminin arldsayfadaki Session nesnesinde sakl olan deikenlere eriebilirsiniz.

    rnein, aadaki komut dosyasnda nc satr Ouz deerini yazar. Bu,sunucu komut dosyasnn ilenmesini bitirene kadar Session nesnesinin yok

    edilmemesinden dolaydr.

    rnek:

    Sonraki Web sayfalarnda Isim deikenine eriirseniz, deerinin bo olduunu

    greceksiniz.Bunun nedeni, Isim deikeninin, yukardaki ilemi bitirdiinde nceki Session.Abandon

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    19/25

    19

    nesnesiyle yok edilmesidir.

    Server, bir oturumu kapattktan sonra baka bir Web sayfasn atnzda, yeni birSession nesnesi oluturur. Deikenleri ve nesneleri, bu yeni Session nesnesindesaklayabilirsiniz.Aadaki rnek, sunucu geerli sayfay altrmay bitirdiinde oturumun son durumunu

    verir.

    rnek:

    FORM ELEMANLARINDA DEER ALMAActiveX Veri Eriim (ADO ) Nesneleri

    ASPnin dier CGI tekniklerine gre kolay olmasnn (peki, kabul, "kolay grnmesi"diyelim! ) belki de sadece veri eriimini adeta ocuk oyunca haline getirmesidir. ADO,gerekte bir ASP nesnesi olmaktan ok Server Componenti (sunucu bileeni ) saylr. Bubileene biz ASP iinden bir ActiveX nesnesi ile ularz.

    Veritaban, gnmzde giderek Web Programlarnn temelini oluturuyor.Sayfalarn unsurlar veritaban dosyasndan alnyor; ziyaretilerin verdikleri bilgilerveritabanna yazlyor. Bu geliimin balca sebebi, veritabannn site gncelletirmeilerini kolaylatrmasdr. Sz gelimi bir sayfadaki seenekleriniz, bir veritabanndanalnyorsa, bu seenekleri alan VBScript kodu hi deimeden kalacak ve siz sadeceveritaban dosyanzda ilgili verinin alnd alana yeni deerler girerek, sayfanz srekligncel tutmu olacaksnz. Bir dier sebep ise veritaban dosyalarnn idaresinin kolayolmasdr. Szgelimi ziyaretilerinizden aldnz bilgileri daha sonra muhasebekaytlarnza veya adres defterinize, mteri ktne ya da baka suretle kaydageirmek istiyorsunuz. Ziyaretilerimizin form yoluyla bize ilettii bilgileri dzyazdosyasna ilemenin yollarn Dosya sistemi Nesnesini (FileSystem ) grrken, ele aldk.Bunu yapabiliriz kolayca. Ama daha sonra dz yaz dosyasnn idaresi, veritabannnidaresi kadar kolay olamaz. ASP sayfalarnz Access, Excel, Paradox, FilePro, SQL Server

    ve Oracle veritabanlarna ve spreadsheet dosyalarna eriebilir; bu dosyalardan veri okurve bu dosyalara veri yazabilir. zetle, ASP programlarmzla, SQL-uyumlu veya Windowsve dier sistemler iin yazlm ODBC (Open Database Connectivity/Ak VeritabanBalants ) ile uyumlu her trl dosyaya, ADO nesnesi araclyla ulaabiliriz.

    ODBC ve OLE-DBBu kitapn batarafnda, ASP dosyalarnz gelitirmeye balamadan nce

    bilgisayarnzda ODBC (Open Database Connectivity/Ak Veritaban Balants )srclerinin kurulu olmas gerektiini belirtmitik. ODBC, ADOnun kulland tek sistemdeildir; ve Microsoft firmas, ODBCnin yerine hzla OLE-DB adn verdii yeni birteknolojinin almas iin youn aba iinde. OLE-DB, ODBCnin Webde salad baarnnzerine bina edilen yeni bir teknoloji. ODBC, ilikilendirilmi (relational ) veritabanlarnaerimek zere tasarland halde OLE-DB her trl veritabanna eriebilir. OLE-DB, ASP

    programlarmza yeni nesneler kazandrabilir; kullanlmaya hazr elektronik ticaretbileenlerini kullanmaya imkan verir. Bu konuda geni bilgiyi, Microsofttan edirebilirsiniz.ASP sayfalarmzda kullanacamz ADO nesneleri ilerde de ODBC srclerine erimeimkann koruyaca iin, imdilik sadece ODBC teknii ile almakta ve bu tekniirenmekte saknca yok. OLE-DB, ODBCnin yerini almayacak; fakat iinde ODBCyi debulunduracak. Bu da u anda oluturacamz ASP uygulamalarnn ilerde OLE-DB tekniiile alan sunucularda ileyecei anlamna geliyor.

    imdi ADO ile aada yapacamz kk rnekler iin bilgisayarnzda kurulu birveritaban program varsa onu kullanarak bir veritaban dosyasnda uyeler adyla utabloyu oluturabilirsiniz:

    Alan Ad: Veri tr:

    uyeNo AutoNumber (Birincil Anahtar/Primary Key )

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    20/25

    20

    uyeAdi metin

    uyeSoyadi metin

    email metin

    mesaj memo

    Daha sonra da renkler adyla u tabloyu yapn:

    Alan Ad: Veri trrenkID AutoNumber (Birincil Anahtar/Primary Key )renk metin

    Bu tablolardan birincisine bir ka isim ve dier bilgileri; ikincisine ise drt-be renkad girin. Bilgisayarnzda veritaban oluturma program yoksa bu kitapn kodlararasnda bulunan uyeler.mdb adl MS-Access dosyasn kullanabilirsiniz. Bu dosyay, kiiselWeb Servernzn kk dizinine kopyalayn. Sonra, Denetim Masasn an ve ad ODBC,ODBC 32 Bit, ya da ODBC Data Source olan simgeyi altrn; ikinci sekme olan SystemDSNi tklayn.

    Alacak kutuda Add/Ekle dmesini tklayarak, yeni veri kayna oluturmak iinilk adm olan veriyi okumakta kullanacamz srcy seebileceimiz kutununalmasn salayn. Burada, yukarda oluturduunuz veri dosyasna uygun srcysein. rnek uyeler.mdbyi kullanyorsanz, birinci seenek olan Microsoft Access Driversemeniz gerekir. Son dmesini tklayn ve Access dosyasnn kurulumunu yapmayabalayalm. Buradaki Data Source Name (DSN, Veri Kaynak Ad ), biraz sonra ADOnesnesiyle ilgili metodlar ve deyimleri yazarken kullanacamz veri addr; buraya"uyeler" yazn; nk rneklerde bu veriye "uyeler" adyla gnderme yapacaz.sterseniz, Description/Aklama blmne veritabannn niteliini belirten bir ka kelimeyazabilirsiniz. Sonra, Select/Se dmesini tklayarak ve alcak diyalog kutusu

    yardmyla veritaban dosyasn kopyaladnz yerde bulun; OK/Tamam tklayarak,veritaban seme ilemini tamamlayn.

    DSN oluturma kutularn srasyla OK/Tamam dmelerini tklayarak kapatn;"uyeler" verisi, u andan itibaren btn Web uygulamalarmzn hizmetine girmidemektir. Internet sitenize koyacanz ve veritabanna erimesi gereken sayfalarnz iinbu ilemi gerek Internet ortamnda da yapmak zorundasnz. Veritaban dosyanzInternet sitenizde kk dizinine veya bir dier dizine kopyaladktan sonra sistemyneticisine ya elektronik mektupla, ya da evsahibi firmann ynetim ve teknik destekyardm salayan sayfasnda veritabannzn dosya adn, yolunu, ve DSN olarak kullanmakistedeiniz ismi bildirerek, bizim burada yaptmz ii Server yneticisinin yapmasnsalamamz gerekir. ADOnun bize salad imkanlardan yararlanabilmek iin onunnesnelerini kullanlrz. Bu blmde ADOnun nesneleri ve metodlarn ele alacaz.

    Connection (Veritabanna balant )ADOdan yararlanabilmek iin kullanacamz ilk nesne Connectiondr. Bu nesne

    ile veritaban ile balant salarz, yol aarz.

    SQL

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    21/25

    21

    SQL laflar eitli temel komutlardan oluur. Bunlar SELECT, FROM, WHERE, ORDERBY, GROUP BY, HAVING, UPDATE, DELETE, INSERT dir. Grdnz gibi ne kadar dafakir bir dil. Biz bunlardan iimize yarayacak olanlar inceleyeceiz.

    POPLER SQL LAFLARITABLODAN TM KAYITLARI TM ALANLARIYLA SEMEKYani tablonun tamamn semek iin kullanacamz SQL laf udur:"SELECT * FROM "

    TABLODAN KAYITLARI STEDMZ ALANLARI SEMEK"SELECT , , .. , FROM "

    TABLODAN BELRL KAYITLARI SEMEK (SZGELEME)

    rnein tablomuzda kent diye bir alanmz var. Ve mevcut kaytlar arasndan kenti"ankara" olanlar semek istiyoruz.SQL lafmz: "SELECT * FROM tablomuz WHERE kent = ankara "

    Birden fazla koul da szge de koyabiliriz. Tablomuzda yas diye bir alan olsun.Kenti ankara olan ve ya 30 dan byk olanlar semek iin SQL laf:"SELECT * FROM tablomuz WHERE kent=ankara AND yas < 37"

    Grdnz gibi WHERE ifadesi bize kaytlar szgeleme imkan veriyor. Burada =, > , < , gibi mukayese operatrleri kullanlyor.

    TABLODAN KAYITLARI SIRALI HALDE SEMEKrnein tablomuz da kenti ankara olanlar ya srasnda semek istiyoruz. Bunun

    iin ORDER BY alan_adi yazmn kullanrz. unun gibi :"SELECT * FROM tablomuz WHERE kent = ankara ORDER BY yas"

    Eer azalan srada seeceksek ORDER BY alan_adi DESC, artan srada seeceksekise de BY alan_adi ASC kullanmamz gerekir.

    TABLODAN KAYIT SLMEKrnein tablomuzdan ya 18 den kk olanlar silmek iin SQL laf:

    "DELETE FROM tablomuz WHERE yas < 18"

    TABLOYA KAYIT EKLEMEKSQL="INSERT INTO tblVeri (Adi,Soyadi,Telefon,Dogum_Tarihi,Mail ) values("&txtAdi&","&txtSoyadi&","&txtTelefon&","&txtDogum_Tarihi&","&txtMail&" )"

    LIKE KULLANARAK KAYIT SEM YAPMAKLIKE kullanarak tam karlatrma yapamadmz alanlarla kayt seme imkan

    elde ederiz. WHERE ifadesinde alan adndan sonra kullanlan karlatrma operatryerine LIKE yazlr. Bu ifadeyle veritabanmzda arama motoru gibi bir ey bile

    yapabileceiz ileride. imdi rnek kullanmlar grelim.

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    22/25

    22

    Tablomuzdan ad "A" ile balayan mterileri seeceiz."SELECT * FROM tablomuz WHERE musteri_adi LIKE A%"

    Tablomuzdan yaz alannda "asp" ieren kaytlar seeceiz. (bir arama motoru misali )"SELECT * FROM tablomuz WHERE yazi LIKE %asp% "

    Evet bu temel komutlar ile yolumuza devam edeceiz. Artk bu laflar ileveritabanmzdan istediimiz rafinelikte kayt seebiliriz, silebiliriz, arayabiliriz.

    VERTABANI LEMLERVeritaban muhabbetimiz tam gaz devam ediyor. Bu yazda bir ok veritaban

    operasyonunu birlikte greceiz. Kayt ekleme, silme, gncelleme gibi. Kullanacamz

    veritaban dosyas burada(8,15 kb ). Bu dosya C:\inetpub\wwwroot\db konumunda olsun.Sra geldi script dosyalarmza.

    KAYITLAR.ASPncelikle kaytlar listeleyeceimiz bir arabirim ina ettik. kayitlar.asp ye gz

    atalm. Bu ve dier ASP dosyalar C:\inetpub\wwwroot\ konumunda olsun.

    Kod1: kayitlar.asp

    Yeni Kayt

    #AdEylemlerdzenlesil

    Bu script, basit bir ekilde /db alt dizinindeki kisiler.mdb ile balant kuruyor. kisilertablosundan ald tm kaytlarn "ad" alanndaki deerlerini yazdryor. Ve de her bir

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    23/25

    23

    kayt iin dzenleme ve silme linkleri oluturuyor. Linkler oluturulurken sorgu stringiiinde eylemi gerekletirecek script dosyasna "id" anahtaryla kaydn "id" alanndakideeri gnderiliyor. Tabi bunlar kaytseti sonunda duracak bir dng ierisinde yaplyor.Veriler tablo hcrelerine dngyle dkldne de dikkat ediniz.

    KAYIT_DUZENLE.ASP ve KAYIT_GUNCELLE.ASPKaytlarn listelendii kayitlar.asp de her kaydn yannda bir dzenle balants var.

    Bu balant ile duzenle.asp dosyasna iaret ediliyor. Bir de sorgu cmlesi konuluyoryanna: "duzenle.asp?id=XX" Buradaki XX yerine geerli kaydn id alanndaki deeriyazlyor. imdi kayt_duzenle.asp ye bakalm.

    Kod2: kayit_duzenle.aspKaytlar

    AdTeleonEmail

    ICQAdresDoum Gn

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    24/25

    24

    Aslnda bu scriptin de ncekinden pek fark yok. sadece sorgu cmlesinden "id"anahtarndaki deeri alyor. Ve bu id deerini kullanarak tablodan tek kayt seiyor.("SELECT * FROM kisiler where id =" & id ). Setii kayda ait deerleri ise form inputalanlarna dkyor. Formun action zelliine ise kayit_guncelle.asp yazlm. Gncellemeiini bu dosyaya havale ediyoruz.

    Kod3: kayit_guncelle.asp

    KAYIT_YENI.ASPkayitlar.asp de Yeni Kayt linkinde iaret edilen kayit_yeni.asp... Yapt i u.

    Veritabanna balanp ilgili tablodan oluturduu kayt seti iine yeni bir kayt ekliyor.Kaytsetini gncelliyor, "id" alanndaki deeri bir deikende saklyor. nesneleri kapatyor.

  • 8/3/2019 WEB Tasarm Kursu ve Programlama Kursu (ASP)

    25/25

    25

    Ve de kayit_duzenle.asp dosyasna "id" anahtaryla yeni eklenen kaydn "id" alanndakideeri gnderiyor. Yani bu sayfa sadece ilem yapyor. Kullancya gzkmeden ilemitamamlayp dzenleme sayfasna yneliyor.

    Kod4: kayit_yeni.asp

    KAYIT_SIL.ASPSorgu cmlesindeki "id" anahtarndan alnan id deeri kullanlarak u SQL ifadesi

    oluturuluyor.DELETE FROM kisiler WHERE id = " & id . Ve bu ifade balant tarafndan yrtlyor(execute ). Sonuta id si alnan kayt tablodan silinmi oluyor. Kullanc da geldiisayafaya ynleniyor.

    Kod5: kayit_sil.asp

    INCLUDE FILEBu seeneimiz asl olarak, herhangi bir ASP dosyamz baka bir ASP dosyamza

    dahil etmeye yarar.