![]() |
![]() |
#1 |
Junior Member
Üyelik tarihi: Mar 2011
Mesajlar: 6
|
![]()
ASP NIN MANA VE EHEMMIYETI
GIRIS Yetenekler yavas yavas yeryüzüne çikiyor arkadaslar. Artik internet herkesin, hepimizin oluyor farkinda misiniz? Her client(istemci) ayni düzeyde erisim ve gezinim hakkina sahip. Soz ve düsünce ozgürlügü var. Kendinizi sinif arkadasiniza bile ifade etmekte güçlük çekerken, karsimiza dev gibi dikilen bu zahiri alemde en kolay seyin bir “kendimi ifade edeyim” alani (homepage derler) yaratmak oldugunu gorünce sasirmistik. Insanlar HTML kullaniyorlardi eski çaglarda. Yapilan webolojik çalismalar ve derin darbeler, Frig medeniyetinde “hypertext markup language” teriminin bilindigini, Urartu taraflarinda da HTML adli bir canavarin varligindan süphe edildigi gerçeklerini ortaya çikarmistir. Meshurlugu eski çaglara kadar dayanan HTML neydi peki? Sadece insanlara yazdiklarimizi, çizdiklerimizi ve begendigimiz site koprülerini yerlestirdigimiz, envai çesit editorü bulunan, utanilmasa “Nesneye Yonelik Programlama Dili” gurubuna alinacak bir çesit kod akaidi. Excel’in içinden çikan, Word’de tek tusla ciziliveren tablolar HTML’de de var. Form ogeleri koyabiliyorsunuz. Yazi yazabiliyorsunuz (pes yani). “Bu ask fazla sana” Askimiz evrim geçirecek. Insanlar daha dogrusu webmimarlar, HTML yi tek tarafli metin ve grafik ogesi olmaktan çikarmak için çabaladilar. Microsoft’un evliyalari devreye girdiler. NT4 isletim sistemi mimarisine dayanan, Internet Information Server ‘ de çalisip, yeni bir ekmek kapisi olacak olan ASP yi gelistirdiler. ASP artik Türkiye’nin yeni yüzü olacak! Herkes ASP kullanacak, herkes rahatlayacak. ISTE SIZE ASP Neden hep ASP diyoruz. Bunu bir açmak gerek. ASP Ingilizce “Active Server Pages” tümcesinin kisaltmasidir. Ingilizce bilenler bunun “Aktif Sunucu Sayfalari” manasina geldigini anlamistir. Aslinda Türkçesi de mantikli geliyor insana. Sunucu tarafinda islenen sayfalar demek oluyor ASP. Sunucu ne peki? Internette bilgi alisverisi bakkalla müsterisi arasindaki alisveristen çok da farkli degil. Istemci (Client) talip olandir; sunucu (Server) arz edendir. Genelde internete bagli bilgisayarlar (sizinki de muhtemelen bu genellemeye dahildir) istemci konumundadir. Bilgisayarinizin diger insanlara, yani dünyaya sundugu, arz ettigi bir meta yoktur. Sunucularin arz ettigi web sitelerini gezersiniz. Kendi web sitenizi olusturursunuz, ancak kendi sitenize yine istemci olarak girersiniz. Sunan kimdir? (Hypermart, Xoom... ama asla siz degil!) ASP NIN MANA VE EHEMMIYETI 1 ASP NEDIR PERSONAL WEB SERVER NE KI? PWS YI KURDUN MU ? Bu makalede Microsoft Windows 98 CD si içinde gelen Personal Web Server'dan bahsedecegiz. Oncelikle bu programi sisteminize kurmaniz gerekiyor. Basit bir kuruluma sahip. Normal kurulum bize yeterli olacaktir. Kurulumu tamamladiginizi varsayip basliyoruz. GENEL MANZARA Baslat > Programlar > Donatilar > Internet Araçlari > Personal Web Server > Personal Web Manager ile veya C:\WINDOWS\SYSTEM\INETSRV\pws.exe ile Personal Web Manager programini açalim bakalim. Bu program bizim Web sunucumuzu yonetmekte kulllanacagimiz "manager" dir diyecegiz. Neler yapabiliyoruz peki bununla? Once programin açildiktan sonraki manzarasi ve endamini gorelim. Ilgili resim asagidadir. Yukaridaki ekran gorüntüsünde "dur" yazan butonun ne ise yaradigini açiklayalim: Bu buton serverinizin çalismasi veya durdurulmasi durumlari arasinda size geçis yaptiriyor. Su anda butonda dur yaziyor. Demek ki dügmeye tiklayinca serverin isleyisi duracak; bilgisayariniz sadece client olacak. Butonun üzerindeki metin ise "baslat" (bildigimiz baslat) a donüsecek. Bu durumda butona tekrar tiklanirsa server aktif hale gelecek. Istemci bilgisayariniz, fukara bir server haline gelecek tekrar. Butonda "dur" yazisi belirecek. Hayat bu sekilde devam edecek. "http://mucit" ifadesi sunucunuzun aktif ana dizinidir. Web sitenizin giris sayfasi bu dizinde olmalidir. "mucit" benim sunucumun adidir. Buraya tiklarsaniz browser açilir ve http://mucit adresini bulmaya çalisir. Sunucunuz aktif ise bulacaktir olagan olarak. Ve giris sayfasina bakacaktir. Eger giris sayfaniz varsa (ornegin default.asp) onu açacaktir. Burada "mucit" yerine localhost yazarsaniz ayni sonuçla karsilasirsiniz. "E:\inetpub" ifadesi, sunucunuzun aktif dizininin "fiziksel yol" udur. Yani http://localhost adresi aslinda "e:\inetpub" a isaret etmektedir ve buradaki giris sayfasini açmaktadir. Web server kurulurken c:\inetpub\wwwroot yolunu sizin ana dizininiz yapar. Bunu "gelismis" seçenegiyle kolayca degistirebilirsiniz. PERSONAL WEB SERVER NE KI? 3 ASP NEDIR DEGISKENLERIMI KIMSEYLE DEGISMEM ASP YI YAZMAYA BASLAYALIM HTML bildiginiz varsayiliyor. Tablolama tasarim konusunda ayri bir oneme sahiptir. Bir de ileride veritabani ile iliskilerimizde arayüz olarak kullanacagimiz için formlari ve nesnelerini iyi bilmeniz lazim. HTML belgelerinde, HTML taglari < ile > simgeleri arasina yazilmaktaydi. Bu sekilde diger metinlerden ayirt edilmekteydi. Yazacagimiz ASP kodlari ise benzer formda <% ile %> ayraçlari arasina yazilacak. Sunucu bu iki ayraç arasindaki ifadelerin ASP kodu oldugunu bildiginden bunlari yürütecek ve klullaniciya salt, ASP den arinmis HTML belgesi gonderilecek. Ornegi inceleyterek bunu daha iyi anlayacagiz. Asagidaki kodu bos bir metin belgesine kopyalayip "ilk.asp" diye kaydedin. 1.sekil: ilk.asp nin ham kaynak kodu <html> <body> <p>Asagida simdinin zamani gorüntülenecek <% Dim simdi ' degisken tanimladik simdi = now ' degiskene simdi nin zaman degerini atadik. Response.Write "<p><font color=""red"">" & simdi & "</font>" ' ve belgeye formatlayarak yaziyoz %> </body> </html> ASP kodlarini ayirt etmissinizdir. Dim ile "simdi" diye bir degiskeni deklare ediyoruz. "simdi" degiskenine now hazir zaman fonksiyonunun degerini atiyoruz (VB SCRIPT). "Response.Write" komutuyla küçük bir formatlama yapip simdi yi belgeye yazdiriyoruz. Tek tirnak isaretinden satir sonuna kadar yazilan ifadeler, artik olmazsa olmaz olan comment (yorum) lardir. Yani sunucu buradaki deyimleri anlamaya ugrasmak yerine kaale bile almayacaktir; gülüp geçecektir. Ote yandan buradaki yorumlar istemci bilgisayara da ulasmayacagina gore webmimarin tapulu mali olarak kabul edilebilir. Webmimar içinden geçen her seyi satir DEGISKENLERIMI KIMSEYLE DEGISMEM 6 ASP NEDIR FORM'UNDA SAYFALAR YAZMAK Form lar veritabani ile olan iliskilerimizde aramizdaki çopçatan gibi bir sey olacak. (ne benzetme!) Kimi zaman veritabanindan aldigimiz verileri düz metin haline dokmekten baska, formdaki alanlara da dokmek isteyecegiz. En onemlisi veritabanina web den veri basarken, formlari kullanacagiz. Elimiz mahkum. Bütün bilgi girisleri formlar üzerinden gerçeklesiyor desek yalan omaz degil mi? Anketler, ziyaret defterleri, forumlar, arama sorgulari... Hepsini olusturacagimiz form nesneleriyle teker teker halledecegiz. Bu makalede HTML formlarini ASP de nasil amacimiza yonelik kullaniriz; onu inceleyelecegiz. Bunu için HTML nin form unsurlarini bilmeniz gerekiyor. Asagi yukari her HTML editoründe bu unsurlar listelenerek hazir sekilde size sunuluyor. FORMDAN IÇERIK TALEBI Ilk once formlardaki elemanlarin içerigini talep etmeyi ogrenelim. Bir formda çesitli elementler bulunabilir. Bunlardan bilgi girisleri için metin kutulari (input text), metin alanlari (text area), seçme kutulari (checkbox, input radio), seçim menüleri (select option) vs.. kullanilabilir. Kullanici karsisina dikilen bir formdaki gerekli alanlara bilgi girisi yapar ve “submit” tusuyla formu tüm unsurlariyla “action” ozelliginde belirtilen URL ye gonderir. “Action” ozelligine girilen bu URL bir ASP dosyasi olabilir. Çünkü ASP ile gonderilen form unsurlarindaki bilgilere ulasabiliriz. Iste burada, bir asp dosyasinda form elemanlarindaki içerigin nasil talep edilecegini gorecegiz. Bunun için bir form barindiran HTML dokümani olusturalim ve “form.html” olarak kaydedelim. Sekil1. Form.html kaynak kodu <html> <body bgcolor="#FFFFFF"> <form method=post action="getform.asp"> <input type="hidden" name="FormAdi" value="Müsteri Anketi"> Adiniz : <input type="text" name="ad"> <<−−!−−−−−−−àrequest.form”ad” −−>> <<br><br> Cinsiyetiniz : <input type="radio" name="cinsiyet" value="bay"> Bay <input type="radio" name="cinsiyet" value="bayan"> FORM'UNDA SAYFALAR YAZMAK 8 ASP N SORGU CÜMLECIKLERI KULLANMAK SORGU CÜMLECIGI : QueryString ASP sayfalari kodlarken, bir sayfadan diger bir sayfaya bilgi aktarmanin degisik yollari vardir. Bunlardan biri olan Form kullanarak bilgi geçirmeyi gormüstük. Bir diger yol ise sorgu cümlecigi kullanmaktir. Sorgu cümlecigi, link verecegimiz sayfanin URL sinin sonuna eklenen çesitli string (katar) tipteki ifadelerdir. Ornek : http://www.x.com/deneme.asp?telefon_numarasi=4121254 Yukaridaki URL de belirtilen deneme.asp sayfasina “telefon_numarasi” kimligiyle bir deger yolluyoruz. Burada deger olarak sayisal ifade yazdik gibi gorünüyor. Ancak hayir! Buraya istediginiz kadar rakam esitleyin, yazdiginiz bir string dir, yani matematiksel olarak bir anlami yok. Bildigimiz düz metin. Evet, hernagi bir sayfanin URL sinin sonuna bu sekilde sorgu stringleri ekleyebiliriz. Birden fazla eklemek istersek aralara “&” isareti koyariz. Ornek: http://www.x.com/siparis.asp?musteri...&siparis_no=52 gibi. Boylece bir sayfaya sorgu stringi yoluyla bilgi geçirme ifadesinin ne kadar kolay hazirlandigini gorüyoruz. Bir de madalyanonu oteki tarafina geçelim. Yani sorgu cümlesiyle yollanan bilgileri talep edecek bir asp dosyasina ihtiyacimiz olacak. Bu asp dosyasinda sorgu stringini talep etmek için asagidaki kod kullanilir. Request.QueryString(“eleman_adi”) Ornegin yukarida verdigimiz, URL deki sorgu cümlesinden deger çeken siparis.asp dosyasinda su kodlar kullanilabilir. Dim musteri_no, siparis_no Musteri_no = Request.QueryString("musteri_no") Siparis_no = Request.QueryString("siparis_no") Bu kodun çalismasiyla Musteri_no degiskenimize sorgu stringinden aldigimiz “15” degeri, Siparis_no degiskenimize ise “52” degeri atanmistir. Tekrar edersek bu degiskenlerdeki degerler string tiptedir. String ve Sayisal tiplerin farki için asagidaki kullanimi inceleyelim: (yukaridaki koda devam ediyoruz) Response.Write (Musteri_no + Siparis_no) Yukaridaki ifade sonucu sayfaya 15 + 52 = 67 yazilacak diye beklemeyin. Bunlar string ifade olduklarindan aradaki toplama isareti matematiksel toplama islemi yapmak yerine iki stringi birlestirecektir. Ve sayfaya ‘1552’ yazilacaktir. Bir asp belgesine sorgu cümlecigi yoluyla bilgi geçirmenin yolunu ogrenmis bulunuyoruz. Peki bu yontemi nerelerde kullanabiliriz? Tabi ki bu yontemi de daha çok veritabanlariyla ugrasirken kullanacagiz. Zaten anlatilan bu konularla hep veritabani kullanimina hazirlik yapiyoruz. Sadede geldigimizde bu yontemleri çok kullanacagiz. Ornegin veritabanindan tekil kayitlar seçerken sorgu stringi kullanmak en kullanisli yoldur. Okudugunuz bu web dokümanindaki yazilar da bir veritabanindan çekilmistir. Ve çekilirken de kolaylikla SORGU CÜMLECIKLERI KULLANMAK 12 ASP NEDIR AH VERITABANI AH! Sira geldi dilimizden düsmeyen veritabani kullanmayi ogrenmeye... Veritabani: Veritabanlarini verilerin depolandigi tablolari barindiran dosyalar seklinde düsünebiliriz. Tablolar ise ad, soyad, telefon gibi alanlardan (field) olusur. Bu alanlarin tamami ise bir kayiti (record) olusturur. Kayit kavrami satir kavramiyla hemen hemen aynidir. Veritabani tablosundaki satirlara record, sütunlara field diyecegiz. Veritabani dosyalari, farkli programlarla hazirlanabilir. Ancak biz burada yaygin olarak kullanilan Microsoft Access programiyla yaratilmis veritabanlarini inceleyecegiz. Microsoft’un bu programiyla kolayca kendi spesifik veritabani dosyanizi hazirlayabilirsiniz. (Excel de tablo hazirlamak kadar kolaydir.) Veritabani dosyanizin uzantisi .mdb olacaktir. Yeni bir veritabani olustururken yapacaginiz en onemli islem, amaciniza ve kayitlariniza uygun tablolar, sonra da tablolar için field (alan) lar olusturmaktir. Ve de alanlarin tutacagi verilerin tipini belirlemek gerekecektir. Ornegin yukaridaki resimde ornek bir veritabanindaki bir tablonun kayitlari gorünüyor. (Access buna verisayfasi gorünümü demis). Tablonun adi da onemlidir. Diger tablolardan adiyla ayrilacaktir. Buradaki tablomuzun adi “OrnekTablo” dur. (Microsoft Access yazisinin yaninda yaziyor). Ornektablo adli tablomuzda id, AdSoyad, Adres, Telefon, Mail adlariyla olusturulmus 5 tane field (alan) bulunuyor. Resimde tabloya üç adet kayit girilmis. “id” alani birincil anahtar dir. Tabloya eklenen her yeni kayitta bu alan otomatik olarak bir sayi yazilir. Diger tablolarla, veritabanlariyla iliskilerde, ozellikle bizim kullancagimiz ASP sayfalarindaki sorgularda bu kayit seçmek için bu tür alanlari çok kullanacagiz. Diger alanlarda düz metin tipindeki alanlardir. Metin tipindeki alanlarda her kayit en fazla 255 karakter bilgi tutabilir. Bu okudugunuz yazi da veritabanindan geliyor. Sizce 255 karakteri çoktan geçmedi mi okudugunuz kisim. Elbette geçti. Iste bu tür uzun metin verilerinde “not” tipi veri tutan fieldlar kullaniyoruz. Eger yukaridaki “adres” sütunu yerine “Ozgecmis” diye bir sütun olsaydi (255 karakteri asar degil mi bir ozgeçmis) ve biz buraya kisilerin ozgeçmislerini girseydik, Ozgecmis alaninin tutacagi veri tipini access deki tasarim gorünümüne gelip ilgili yerden “not” a çevirecektik. Ote yandan tarih veya saat türünde veriler girilecek bir alanin veritürünü de tarih/saat olarak seçecegiz. Ve sayisal kayitlar için sayi veri türü seçilmeli. AH ERITABANI AH! 15 ASP NEDIR ASP ILE VERITABANI BAGLANTISI BAGLANMAK... Artik "yaz askimiz veritabanlariyla nasil temasa geçecegiz" mes'elesine geldik. Gerçekten olaganüstü basit ve kisa kodlamalarla dev gibi bir veritabanini onümüzde diz çoktürecek güçteyiz. Yasasin! Hangi veritabanina baglanacagiz problemimiz yok çünkü onceki makalede ornek bir Access veritabani dosyasi hazirladik (kisiler.mdb). Bu dosyayi zip'ik halini buraya tiklayarak indirebilirsiniz (8,15 kb). Baglanti muhabbetimiz bu dosya çerçevesinde olacak. Veritabani dosyaniz "c:\inetpub\wwwroot\db" dizininde olsun. Simdi "c:\inetpub\wwwroot" dizininde yeni bir asp dosyasi yaratacagiz. Kullandiginiz editorü açin ve asagidaki kaynak kodunu kopyalayin. Sonra da vtbaglanti.asp adiyla wwwroot dizinine kaydedin. Sekil1. vtbaglanti.asp kaynak kodu <% ' vtbaglanti.asp ' bu sayfada db alt dizinindeki kisiler.mdb veritabani ' dosyasiyla baglanti denemesi yapiliyor. ' çevreye verecemiz rahatsizlik ' umurumuzda deeeldir. %> <% '' BAGLANTI KISMI BASLIYOR ***** ' baglanmadan once baglanti nesnesi olusturmamiz lazim. ' adini da ismail koyalim. elbet bir hatirasi var. Set ismail = Server.CreateObject("ADODB.Connection") ' Artik nurtopu gibi bir baglantimiz var. Adi da ismail. ' sonra ismail adini verdigimiz baglanti nesnemizle kisiler.mdb veritabani ' dosyamizi açalim. ismail.Open ("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &_ Server.MapPath("db/kisiler.mdb")) ' kisiler.db de bulunan kisiler tablosundaki tüm kayitlari almak için ASP ILE VERITABANI BAGLANTISI 20 ASP NEDIR devamı gelicek |
![]() |
![]() |
![]() |
Seçenekler | |
Stil | |
|
|