Diyelim ki isyerinizde çalisanlarinizin bilgileri bir çesit veritabanina kayitli ve siz bunlari degiskenlere atamak istiyorsunuz. Herbirine ayri degiskeni nasil verebilirsiniz???
Burada dizi degiskenleri veya Array yapisi ortaya çikiyor.
<%
DIM isciler(100)
' Burada 100 tane kaydin tek bir degiskende tutulabilecegini belirtmis olduk. Ama kayit numaralari 0'dan basladigi için 99'a kadar veriyi tek degiskene toplayabiliriz.
Böylelikle kaçinci isçinin adini yazdirmak veya islemek istiyorsak, onu yazdirabiliriz..
<% Response.Write Isciler(2) %>
yazdigimizda ekrana "çağrı" yazacaktir. Peki bu kadar veriyi girdikten sonra bir 20 isçinin daha sirketinize alindigini göz önüne alinirsa, bu verilen girilmesi için de REDIM komutunu kullaniyoruz..
Varolan degiskenimizi REDIM Isciler(120) seklinde tanimlarsak, Isciler degiskenindeki verilen silinip, yerine 120'lik yeni bir sirali degisken açilacaktir. Bunun önlemek için PRESERVE komutunu ekliyoruz..
Böylelikle ilk 100 kaydimiz silinmeden sirali degiskenimiz genisletmis olduk. Peki sirali degiskenler içerisine 1'den fazla veri girmek mümkün mü? Tabi ki..
Böylelikle tek degiskenin 120 tane kaydina ait, 3 ayri bilgiyi yine tek degiskende topladik.
Ali vs.. ' nin hatay'da yasadigina ait bilgiyi sadece ona ait degiskende bütünlestirmis olduk. Buna Boyut diyoruz. Isciler(1,2) degeri , 1. kaydin 2. boyutundaki degisken anlamina gelmektedir.
Yani bu kadar kaydin arasinda sadece soyadlarini yazdirmak istiyorsak;
<% For I=0 to 120
Response.Write Isciler(I,2) & "<br>"
Bu Sonra, ASP içerisinde en genis kullanim alani bulunan ve Visual Basic'in tüm kudretini web sayfalarimiza tasiyan oldukça basit kullanimi ile bir çok kez hayatimizi kurtaracak bir dil olan VBScript'i hizlica tanimaya çalisacaz.
Eger Visual Basic'e veya Basic diline asinaliginiz varsa, VBScript sizin için çocuk oyuncagidir diyebiliriz. ASP içerisinde varsayilan dil olan VBScript, Internet Explorer disindaki browserlarda istemci tarafinda çalisabilecek bir dil kabul edilmedigi için, VBScript'in istemci bazli özellikleri, MsgBox veya InputBox gibi Visual Basic özelliklerini kullanamayacagiz ne yazıık ki fakat ASP'nin de sunucu tarafli oldugunu düsünürsek bu tür komutlari kullanmayacagimizi söyleyebiliriz.
ASP içerisinde VBScript kullanimi
ASP'nin bir çok Script diliyle çalistigini ve hangi dil ile kullaniyorsak onun servera belirtilmesi gerektigini söylemistik. Ama VBScript ASP'nin varsayilan dili oldugu için bunu belirtmek gerekmiyor. Tabi ASP içerisinde server tarafindan islenecek komutlari yazmaya baslamadan ve bitirdikten sonra da yine Delimiter (sinirlayicilar) dedigimiz <% ve %> isaretlerini koymayi unutmamak gerekiyor.
Kullandigimiz dil, sayfanin en üstünde @Language ile belirtiliyor.
<% @Language = "VBScript" %> gibi..
Eger Ingilizce biliyorsaniz, komutlari anlamak oldukça kolay olacaktir.
<% For I=1 to 7 %>
<H<% Response.Write I %>>VB Script </H<% Response.Write I %>>
<% Next %>
<H7> Görmüs oldugunuz üzere Normal HTML komutlari içerisinde de Delimiterler ile ASP kodu yerlestirebiliyoruz. </H7>
ASP konusunda Ilk objemiz Request objesi olacaktir.
Kullanimi:
Request.Method( ) seklindedir.....
Request, Türkçe anlamiyla "Istek" anlamindadir. Sunucuya gelen her istek sunucunun cache'inde tutulmaktadir. Böylelikle sayfalarinizda ASP kodlama ile bu istekleri, yanitlara dönüstürebilir ve sayfalariniza degisik bir dinamizm katabilirsiniz. Formlar da sunucuya kullanicilarin girmis oldugu bilgileri gönderdigine göre, sunucunun bunu öncelikle istek olarak algilayip, ona göre karsilik vermesi dinamik sayfalarin temelinde bulunmaktadir.
isterseniz öncelikle sunucuya request yollayacagimiz bir HTML sayfasi hazılayalim
Bu sayfayi InetPub\wwwroot dizininizin içinde dilediginiz bir isimde HTML veya ASP uzantisiyla kaydedebilirsiniz. Çünkü formumuzun içinde herhangi bir ASP ögesi kullanmadik.
Dikkat ettiginiz üzere Isminizi soran bir metin girdisi satiri, cinsiyetinizi soran bir seçimli menü ve ASP ögrenmek isteyip istemediginizi soran bir buton seçimi görünmekte
Formun gönderilecegi ASP dosyasinin adini ise Request.asp seklinde belirttik. Simdi ayni dizinde Yeni Metin Belgesi açalim ve ismini request.asp diye degistirelim. Metni Not Defteri ile açalim ve komutlarimizi yazmaya baslayalim:
Form'dan gelen bilgiler için Form metodunu kullanacagiz. ASP'de satir aralarina not düsmek ve ASP yorumlayicisinin (ASP.DLL) bunu es geçmesini istersek ' tek tirnak isaretini kullanabiliriz. Basic'teki REM (Remark) komutunun yerine geçmektedir. Dim komutu ise gelecek veriler için bir veri alani açmamiza yarayacaktir. Dim komutu ile tanimladigimiz degiskenlere daha sonra yanlislikla baska bir isim vermemizi saglayacaktir.
<%
' Öncelikle Formdan gelen bilgileri alalim.
Dim isim
Dim cinsiyet
Dim soru
Dim cevap
isim = Request.Form("isim")
cinsiyet = Request.Form("cinsiyet")
soru = Request.Form("soru")
%>
Böylelikle isim, cinsiyet, soru ve cevap gibi 4 ayri degisken açip, Bunlari Form'daki NAME'leriyle bize gelen verilere yönlendirdik.
Cinsiyet = Request.Form("cinsiyet") satirini yorumlarsak:
"cinsiyet" isimli formdan gelen degeri ("VALUE") , cinsiyet diye bir degiskene ata anlaminda bir satir yazmis olduk.
<% %> isaretlerine "sinirlayici (Delimiter)" denmektedir. ASP komutlarinin nereden baslayip nereden bittigini belirtirler. En son yazdigimiz sinirlayici kaldiralim ve kodumuzu hazirlamaya devam edelim.
Kullanimi:
If parametre sartlari Then
Yapilacak islemler
Else
Eger sartlar saglanmiyorsa yapilacak islemler
End If
Burada sorumuza sordugumuz yaniti metne dönüstürelim. Eger soru butonlarindaki deger 1 ise bunu Evet cevabi olarak aldiralim, eger soru= "2" cevabi verilirse bunu da Hayir olarak cevap degiskenine atayalim
<%
If soru = "1" Then
Cevap = "Evet"
Else
Cevap = "Hayir"
End If
%>
Simdi ASP'nin HTML kismini hazirlamaya baslayalim....
<TABLE CELLSPACING="2" CELLPADDING="2" WIDTH="80%" ALIGN="CENTER">
<TR>
<TD WIDTH="100%">
Isminizi <B><% Response.Write isim %></B> olarak yazdiniz
</TD>
</TR>
<TR>
<TD>
Cinsiyetinizi <B><% Response.Write cinsiyet %></B> olarak belirttiniz.
</TD>
</TR>
<TR>
<TD>
Anket sorusuna <% Response.Write soru & " yani " & cevap %> olarak cevap
verdiniz.
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
Burada Response.Write metodunu degisik bir kullanimini ögrendik. Yazacagimiz degiskenleri & (ve) isaretiyle ayni komut üzerinde yazabiliyoruz.
Response.Write "Main" & " " & "Board" gibi
Ekranda Main Board olarak görünecektir.
Tabi Request objesinin kullanimi sadece formlarla da kalmiyor. Çerezler (Cookies) , Sunucu Degiskenleri (Server Variables) , Sorgu satirlari (QueryString) gibi istekleri de yine request objesi ile alabiliyoruz.
Request.ASP dosyamizi bir kez daha kopyalayarak adini reqquery.asp olarak degistirin ve not defterinizi açarak burada Request.Form olarak gördügünüz satirlari Request.QueryString olarak degistirin
Tüm programlama dillerinde oldugu gibi VBScript içinde de, o script içerisinde sik kullandigimiz degerleri "Degisken" adini verdigimiz tanimlara ihtiyacimiz olacaktir. Degiskenler, adindan da anlasilacagi üzere, degerlerini sizin belirlediginiz veya programlamaniza göre VBScript'e belirttiginiz degerleri islemeniz için kullandigimiz kisa yollardir. Degiskenlerin VBScript'e önceden belirtilmesi gerekmese de, VBScript'in bu degiskenleri çok daha hizli ve dogru sekilde degerlendirmesini saglar.
Degiskenlerini tanimlamak için boyut belirleyecek komut DIM 'dir. Degisken isimleri rakamla baslamayan (fakat rakam içerebilen), Türkçe karakterler kullanamadigimiz harf ve rakamlardan olusur. Degisken isimlerinin boyutu da en fazla 255'tir. Suxxess, sayac12 vb.. Ama degiskenlere atadigimiz degerlerde böyle bir sinirlama bulunmuyor. Tek DIM komutunda, virgül ile ayirarak bir çok degiskeni tanimlayabiliriz.
<%
DIM sayac, portal, isim, soyad, yas
sayac = 1
Portal = "Mainboard"
isim = "dark"
soyad = "cafe"
yas = 24
tarih = Date()
sayi = "1"
%>
Böylelikle 5 tane degiskenimize degisik degerler atadik. Farketmis olacaginiz üzere sayisal degerleri tirnak isaretleri arasina almadik. Degiskenin bir oturum boyunca kullanacagi yerlerdeki davranislarini belirten Variant dedigimiz türler bulunmaktadir.
Üstteki örnege göre örnek vermek gerekirse "yas" degeri için
<% Response.Write (yas * 2) %> yazdigimizda ekrana yazilacak sonuç 48 olacaktir. Fakat tirnak içerisine aldigimiz "sayi" degiskenini 2'yle çarptigimizda script hata verecektir.. Çünkü VBScript onu bir yazi satiri (String) olarak almistir.
Veri Türleri
Boolean (Bit) Bu deger 1 (True - dogru) veya 0 (False-Yanlis) durumundadir.
Byte 0 ile 255 arasinda degisen sayisal degerdir.
Double Floating Point (Kayan nokta ) degerleri türüdür. 4.9E-324 ile 1.8E308 arasi degerlerde bulunabilir.
Date/Time Tarih veya zaman bilgisini içerebilir. Bu belirlenirken sunucunun Regional Settings (Bölgesel Ayarlar) içerisinde belirtilen tarih ve zaman birimleri kullanilmaktadir.
Empty Deger atanmamis degiskenlerdir. Isim = "" gibi..
Error Programin hata degerleridir
Integer Tam sayidir. Ondalik bölüm içermez. +32.768 ve - 32767 arasindaki tamsayilardir.
Long Noktalik bölüm içermeyen (tamsayidir) fakat -2.147.482.648 ile 2.147.483.648
Null Içinde veri bulunmayacak sekilde tanimlanmis degiskendir. Bunu empty ile karistirmamak gereklidir. Empty'de deger olarak "" vardir. Fakat null'da bir deger bulunmamaktadir.
Object Windows OLE nesneleri kullanmak için kullanilan degiskendir.
Single Kayan nokta degerlerinden bir digeri olan Single'in 1.4E-45 ve 3.4E38 arasinda degisen türüdür.
String Alfanümerik karakter bütünüdür. 2 milyar'a kadar karakter içerebilir.
Gelecek dersler
[Degisken ve Degisken Yönetimi]
[İstekler ve Yanitlar]
[VBScript'e selamüalyküm ]
[Degisken Boyutlari]
[Mantiksal Kontroller]
[VScript Döngüleri]
[VBScript' in Derinliklerine yolculuk(bayağ bi uzun sürecek bu olay )]
[Aplication ve Session Nesnesi]
internette dolaşırken bol bol rastlaşdigimiz olaylardır bu sorgulama satirlari. Linklerin üzerine geldiginizde bolca = ve & isareti bulunan satirlar, gidilecek dökümanin aktif bir döküman oldugunu ve bu satirlardaki degiskenlere göre degisecegini anlatir.
QueryStringler, Formlarin kullanilmasindaki GET metodundaki gibi verileri browserinizin Adres kismina biriktirip karsi dökümana öyle gönderir. Böylelikle Formlarin her zaman kullanilamayacagi linkler gibi yerlerde kullanilmaktadir.
Yani
isim = Request.QueryString("isim")
cinsiyet = Request.QueryString("cinsiyet")
soru = Request.QueryString("soru")
ASP'de komutlar, <% ve %> taglarinin arasina yazilir demistik hatırlarsanız bir önceki cavaplarımda. Ama iki komut ayni satira yazilamaz. Ya %> seklinde komut kapatilip tekrar <% ile baska bir komut satiri açilir veya ENTER ile bir satir asagidan devam edersiniz.
Örnegin:
<% Response.Write Time %><% Response.Write Date %>
ya da
<% Response.Write Time
Response.Write Date %>
gibi. Tabi sizin tercihiniz ama tekrar bir %><% yazma zorunlulugundan kurtulmaniz için 2. yolu tercih etmenizi öneririm bence ikinci yol daha basit .
Tabi yukaridaki gibi yazdigimizda aralarda Enter olmasina ragmen sayfamiza baktigimizda yanyana durdugunu görürüz. Sonuçta ASP de bir HTML Yorumlayicisina gönderilir. Bu da demek oluyor ki ASP'ye tam hükmedebilmek için de iyi bir HTML bilgisine ihtiyacimiz var. Bu yüzden satir atlamasini istiyorsaniz ASP kodlarinin arasinda yine <BR> eklemek gerekiyor. Eger ASP Kodu içerisinden yapmak istiyorsak HTML kodlarini çift tirnak isaretleri arasina yazmamiz yeterli olmakta.
mesela :
<% Response.Write Tarih
Response.Write "<BR>"
Response.Write Date %>
Veya
<% Response.Write Tarih %><BR><% Response.Write Date %>
Web programlama dillerinin en önemli özelliklerinden biri veritabanlariyla birlikte çalisabilmesidir. Peki veritabani kullanimi bize ne avantajlar saglar?
Veritabanlari tabii ki pek çok alanda kullanilmaktadir. Ama web üzerinde görülen en yaygin kullanimi sitelerin güncel bilgilerle doldurulmasidir. Oldukça genis bir kapsama alani bulunan veritabanlari, sitelerde arama, ürün kataloglari gibi alanlarda oldukça fazla kullaniliyor. ASP de pek çok veritabanini desteklemektedir. Bunlar arasinda tabii ki Microsoft SQL server, Access veritabanlari, mySQL, Paradox gibi sisteminizde DSN kaydi bulunan bir çok veritabanini başarıyla kullanabilmektedir. Bu yazıda ise en çok kullanilan veritabanlarindan biri olan ms Access veritabanlari üzerinde yoğunlaşacaz . Bunun yaninda SQL server kullananlar için de örnekler verecegiz.
Peki ya gelecek????
ASP'nin gelecegi simdiden belirlendi diyebiliriz. Henüz beta uygulamalariyla karsimiza çikan ve Microsoft'un .NET projesi diye adlandirdigi, C# dili üzerine kurulmus, ASP.NET simdiden oldukça basarili görünüyor. Henüz beta asamasinda oldugu için yine de kesin bir sonuca çikamasak da, süphesiz ki günümüzde kullanilan tüm sistemlerden oldukça belirgin bir sekilde daha hizli.
Web programlama dillerinde çalisma prensipleri
yukarıda da belirttigimiz üzere bir web sitesinin isleyisinin en basit açiklamasi Request-Response (Istek-Yanit) diyebiliriz. Web browserinizda bir web adresi yazdiginiz anda başlayan bu süreç, yine browserinizin sag alt kösesinde Bitti (Done) yazana kadar baska bir deyisle sayfanin tamami yüklenene kadar devam eder. Bu süreç içerisinde istediginiz dökümanin özelligine göre sunucu içinde bir takim islemler gerçeklesir.
Örnegin istediginiz döküman bir HTML dökümaniysa (basitçe uzantisi htm veya html ise) sunucu size hiç bir islem yapmadan o HTML dökümanini ekraninizda görüntülemeniz için "download" etmenize izin verir.
Ama web tabanli çalisan bir uygulama uzantili ise (asp, php, aspx, cgi, pl vb....) sizin isteginize göre önce sunucu içerisindeki dosya, sanki siz bir program çalistiriyormus gibi derlenmeye başlar. Çikan sonuç size HTML olarak gönderilir. Siz basitçe bir HTML sayfasi görüyormussunuz gibi sayfaya bakarsiniz.
ASP de aslinda bir metin dosyasidir. Fakat sunucuda çalistirildiginda içinde < % % > isaretleri arasindaki kodlar sunucunun isleyecegi kodlardir ve bu kodlarin sonucu ortaya çikan sonuç ekraniniza yansayacak, siz bu kodlari browserinizdan göremezsiniz.
Kesinlikle Windows tabaninda çalisan bir web sunucusu (IIS) gerekmektedir. Linux altinda da Microsoft'a ait olmayan ASP çalistirdigini söyleyen sunucu yazilimlari yapilmis olsa da, ASP'yi verimli kullanabilmek için Windows şarttir diyebiliriz... ASP dosyalarinin üzerine çift tiklayarak çalistiramazsiniz.
Peki evde Internete girmeden ASP'mizi nasil deneyebilecegiz? Tabii ki kendi makinamiza da IIS/PWS kullanarak..
Windows 95/98/ME kullanicilari:
PWS 4.0'i Option Packten bulmalisiniz. Yalniz Windows 98 kullanicilarini bir avantaji, Microsoft Windows 98 kurulum CD'sinde PWS klasörü altinda bu yazilimi bulabilirler. Fakat ne yazikki PWS Windows 98 SE (Second Edition - Ikinci Sürüm)'de bulunmamaktadir.
Windows 95 ve 98 Birinci sürüm kullanicilari ise Internet Explorer 4.0 veya daha üstü (en son sürüm 5.5) kurmak durumundalar.
Windows NT 4.0 Server - NT 4.0 Workstation kullanicilari:
Windows NT 4.0 ile IIS 3.0 gelse de ASP destegi için NT Option Pack'i download etmeliler. Tabi ki öncelikle Internet Explorer 4.01 veya daha üzerini kurmak gerekiyor.
Windows sürümleri (XP Proffesional, Windows 2000 Server, Windows 2000 Proffessional ve diger Windows 2000 ) kullanicilari ise zaten paketlerinin içinden gelen IIS 5.0'i kullaniyorlar. Eger IIS kurulu degilse yine Denetim Masasi - Program Ekle>>Kaldir - Windows Bilesenleri (Control Panel - Program Add>>>Remove - Windows Components )'e girip kurabilirler.
Yükleme Sihirbazi (Download Wizard) size hiç bir zorluk çikarmadan download etmenizi saglayacaktir. Önemli olan size en yakin sunucudan indirmenizdir. Geçerli sunuculardan birini seçin ve downloada baslayin. Eger hiziniz size yeterli gelmiyorsa baska sunuculardan birini deneyebilirsiniz..
ASP gelistiricileri için hazir gelen 6 adet ASP Objesi bulunmaktadir. Fakat ASP Objesi nedir? Bir obje, belirli method ve özellikleri olan bilesenlerin (component) bir örnegidir. Bu kösemizde bu 6 ASP objesini ve yollarini tanitacagiz. Tabi ASP gibi güçlü bir dil, sadece bu 6 objeyle sinirlanmamistir. Tabi bunlarin yaninda ADO gibi veritabani uygulamalarina giren veya CDO gibi email uygulamalarindan da bahsedecegiz. Kendi COM objelerinizi de yaratip kullanabilmeniz ile ASP, size diger hiçbir Sunucu-tarafli (Server-Side) programlama dilinin veremeyecegi bir güç kazandirmaktadir.
Alti Hazir ASP Objesi
Asagida sayacagimiz 6 obje, ASP içerisinde hazir gelen objeler olup, herhangi ekstra bir objeye gerek kalmadan kullanabileceginiz objelerdir.
Siralarsak:
Application objesi : sunucu açildiktan sonra, sunucudan ilk istenen .asp sayfasi ile birlikte baslar ve sunucu kapanana kadar bilgiler tutulur. Application objesi ile gelen tüm degerler, sunucudan tüm kullanicilara ulasilabilir bir sekilde tutulmaktadir. Her ASP sayfasi bir sanal dizindir ve alt dizinleri Application Objesidir diyebiliriz.
ASPError Objesi:ASP'deki hata gösterme objesidir. IIS 5.0 ile birlikte gelmektedir. Yani PWS kurduysaniz bu obje bulunmaktadir. Windows 2000 kullanicisi iseniz bu komutlar hatalari anlamakta oldukça isinize yarayacaktir.
Request Objesi :Request objesi, bir HTTP oturumu süresince kullanicinin browserinin sunucuya aktardigi tüm degerleri depolamaktadir. Bunun içinde kullanicinin browseri, cookieler (yalnizca bulundugu alan adina ait), SSL'den geçiyorsa sertifikalar, form bilgileri vs...
Response Objesi :Response Objesi ise Request'in tersine, kullaniciya karsi bilgi gönderilmesi için kullanilmaktadir. Bunlar sunucu degiskenler, form karsiliklari, cookieleri olabilirler....
ServerObjesierver objesi, sunucumuzun (IIS) bize sagladigi yollari ve özellikleri kullanmamizi saglamaktadir. Bunlar örnegin yeni obje açimi veya sunucu bilgisayarinin içerigini görmek vs için kullanilabilir
Session Objesi ession Objesi ise kullanici browserinin sayfaya ulastigi ilk an açilir ve her kullanicinin kendine özel ayarlarini barindirmaktadir. Kullanici sayfalarinizi dolasirken bu degerler korunur ve sadeceye kullaniciya özel degerleri bildirmektedir. Örnegin her kullanicinin gezindigi sayfalarda font büyüklügü veya arkaplan renginin tema vs... ayri olmasini saglayabilirsiniz
1. Download sihirbazinda belirttiginiz klasöre gidip, "SETUP.EXE" veya Türkçe versiyonunu kullaniyorsunuz "KUR.EXE" 'yi çalistirin.
2. Eger Winsock 2.0'iniz yoksa zaten kurulacaktir. (Tabi Windows 95 kullanicilari için geçerli bir özellik bu)
3. Kurulum sirasinda "Typical" (Normal) kurulumu seçin. (Tabi biraz daha tecrübeli iseniz Özel kurulumu da seçebilirsiniz)
4. Bilgisayarinizi bastan baslattiginizda PWS kurulumu bitmis oluyor.
Kurulum bittikten sonra, masaüstünüzde bir PWS simgesi göreceksiniz. Baslat çubugunun sag alt kösesinde de bir simge olacak. Herhangi birine çift tiklayip açin. PWS'iniz çalisiyorsa ekranda "PWS'yi Durdur" (Stop PWS) dügmesi, eger çalismiyorsa "PWS'yi baslat" (Start PWS") dügmesi göreceksiniz. Eger çalismiyorsa baslatmaniz gerekiyor.
Evet simdi PWS'inizin dogru çalisip çalismadigini kontrol etmemiz gerekiyor. Bir browser (örnegin Internet Explorer) açin. Adres kutusuna http://127.0.0.1 veya http://localhost yazin ve enter'a basin. Eger hersey yolunda ise PWS tarafindan hazirlanmis bir sayfa göreceksiniz. Eger bu sayfa açilmiyorsa, bilgisayarinizi restart edin ve PWS'i açin. PWS simdi elinizde hazir. Kurulum genelde basit ve problemsiz olarak gerçeklesmektedir.
Simdi kurulumda belirttiginiz yerde veya C: harddiskinizde InetPub dizini ve onun içinde WWWroot dizini göreceksiniz. Dosyalarinizi ve Web sayfalarimizi artik bu dizinde kullanacagiz.
Ilk Aktif Sunucu Sayfalarimiz (ASP)
Simdi en çok kullandiginiz Metin Editörünü veya daha önceden de kullandigimiz Front Page'imizi açalim. ASP komutlari komut tabanli olduklarindan HTML koduna yazilmaktadirlar. O yüzden Not Defteri de isimizi görecektir.
Burada ASP sayfalarini yazmak için Visual Basic Script dilini kullanacagiz. ASP ile JavaScript ve Perl de kullanabilirsiniz. Simdi asagidakileri HTML sayfamiza yazalim.
< html >
< head >
< title >Ilk ASP sayfam< /title >
< /head >
< body >
< /body >
< /html >
Farkettiginiz üzere bu basit ve içinde ASP kodu içermeyen bir HTML sayfasi. Ama endise etmeyin. Simdi basliyoruz. < html > taginin üstüne asagidaki satiri girin. Bu satir sayfaniz en üstüne gelmelidir.
< % @ Language = VBScript % >
Evet bu bizim ilk ASP kodumuz. Bu satir, ASP komut yorumlayicisinin VBScript kullanacagini belirtmek içindi. Eger Jscript veya Perl kullanacaksaniz buraya VBScript yerine Jscript veya PerlScript yazmaniz gerekir. Unutmayin ki PWS, varsayilan olarak VBScript kullanacaktir. Yani bu satiri her kodunuza yazmaniza gerek kalmayabilir.
Devam ediyoruz. < body > < /body > taglarinin arasina girip bir satir açin ve asagidaki komutu yazin.
< % Response.Write "Bu benim Ilk ASP Sayfam" % >
Simdi bu sayfayi "ilkASP.asp" ismiyle C:\InetPub\wwwroot dizininize kaydedin. Not Defteri'nde bunu yazmak için Kaydet penceresinde en altta bulunan "Metin Belgesi (*.txt)" seçenegini "Tüm Dosyalar (*.*)" olarak isaretleyin ve Dosya ismi kismina ilkASP.asp yazin.
Simdi browseriniz açin ve adres satirina http://127.0.0.1/ilkASP.asp yazin. Üst sol kösede "Bu benim Ilk ASP Sayfam" yazisini göreceksiniz. Tebrikler, ilk ASP sayfamizi yazmis olduk böylece. Eger browserinizin "Görünüm" menüsünden "Kaynak Kodunu Görüntüle derseniz." Asagidaki gibi göreceksiniz.
< html >
< head >
< title >Ilk ASP sayfam< /title >
< /head >
< body>
Bu Benim Ilk ASP Sayfam
< /body >
< /html >
Farkettiyseniz, <% %> isaretlerini ve Response.Write komutunu göremeyeceksiniz. Bunun sebebi ise ASP'nin Sunucu tarafli bir dil olmasi. Yani tüm komutlariniz sunucuda biçimlenip, kullaniciya HTML olarak gönderilmektedir.
< % ve % > taglari
ASP scriptimiz < % ve % > komutlari arasina yazilmaktadir. Bu tagler arasina yazilana tüm komutlar sunucuda degerlendirip, biçimlendirilmektedir. Digerleri ise hiç dokunulmadan kullaniciya gönderilmektedir. Dilediginiz kadar < % ve % > kullanabilirsiniz. Bu komutlar sunucuda kalmaktadir ve ASP kodlari hiç bir zaman (veya siz istemedikçe) kullaniciya gönderilmez.
Önce basit dosya sunuculari vardi. Internet browserlari bir arayüz, sunuculardan aldigi dosyayi kullanicinin ekraninda gösterirlerdi. Ama her seyin hareket kazandigi günümüzde, Internet'in sabit kalmasi imkansizdi. Düsünüldü, tasinildi ve Ortak Geçit Arayüzü (CGI) yaratildi.
ilk sunucular sadece harddisklerdi aslinda. Kullanici verilen IP'deki "harddisk"e baglanir. Ordan uzantisi HTM olan bir dosya indirirdi. HTM dosyasi kullanicilarin browserlari tarafindan derlenir, içinde < img > taglerindeki dosyalar da indirilir, ekranda bir Word belgesi gibi sekiller yerine konulur ve gösterilirdi.
O zamanlarda, günümüzde kullandigimiz Frontpage, Dreamweaver (hatta MS Word 97 ve sonrasi) gibi kolay tasarim araçlari bulunmadigi için, sayfalari güncellemek, hatalari kontrol etmek gibi görevler ancak çok dikkatli insanlarin, özenli tasarimcilarin oldukça fazla zaman alan ve almasi da gereken islerdi. Eger ne kadar zaman aldigini ögrenmek istiyorsaniz, herhangi bir portal sitenin ana sayfasini kaydedip, HTML kodunu Not Defteri veya herhangi bir metin editörü ile açip, sadece 1-2 haber kismini resimleri ile birlikte degistirmeye çalisabilirsiniz. Eger bir de sitenizin 100'den fazla güncellenecek sayfasi varsa durum oldukça kötü anlamina gelmekteydi.
Bunun böyle sürmeyecegini öngören programcilar, web sunucularina ve dogal olarak Internet sayfalarina biraz daha dinamizm ve hiz kazandirmak için yöntem arayisina girdiler. ilk web sunuculari Unix tabanli sistemlerde çalisiyordu ve yine Unix tabanli sistemlerin dogal dili olan C ile yeni bir sistem olusturma çabalarina girildi. Mantik basitti. Kullanicinin browseri sunucudan bir HTM dosyasi istediginde, arkaplanda aslinda normalde sunucu ekranindan dahi çalistirilabilecek bir dosyayi çalistirip, dosyanin çiktisini HTML olarak geri gönderecekti. Kullanici, sunucunun ne yaptigindan haberi olmadan ekraninda sadece "yaratilmis" HTML dosyasini görüntüleyecekti. Kullanicilar, bir nevi o sunucudaki dosyayi kontrol edebildigi için buna Ortak Geçit Arayüzü (Common Gateway Interface veya kisaca CGI) denildi.
Ilk basta hersey çok yolunda gidiyordu. Kullanicilar dinamik sayfalari gördükleri için mutlu, sunucu sahipleri sitelerini daha hizli güncelleyebildikleri için memnundu. Ta ki Internet kullanicilarinin sayilari aniden patlama yasayana dek.
CGI'lar sonuçta, basit, harici programlardi. Kullanici girdiginde çalistirilir ve isi bitince kapatilirdi (kill process). Kullanici sayisinin artmasi burada devreye girdi. Ardi ardina siteye giren kullanicilar, ayni programi çalistirinca, sistemin yavaslamasi ile birlikte, bir süre sonra sunucu bu sürece yetisememeye, sonrasinda sunucunun islemez hale kadar gelebilmesine neden olabiliyordu. Daha sonra PERL gibi bir sistem gelistirilse de, CGI'ya göre performansi yine tartisilirdi.
Bunun üzerine her ne kadar benzeri bir sunucuyu Windows NT 4.0 Server üzerine eklemis olsa da, Microsoft'u yeniden harekete geçirmeye zorladi. JavaScript'in tüm browserlarda standart haline gelmesi, kendi yarattiklari VisualBasic Scripting dilini en azindan sunucularda kullanilabilirdi.
Bunun üzerine IIS (Internet Information Services) 3.0 versiyonun üzerine ASP (Active Server Pages) adi altinda bir web programlama dili gelistirdiler. CGI ve PERL'in aksine, ASP'nin belli basli 3 önemli özelligi bulunmaktaydi.
özellik 1. Belirli bir programlama diline bagli degildi. Sunucu makinasinda desteklenen her türlü programlama dilinin kullanabiliyordu.
özellik 2. Tüm kullanicilarin ayni programi ayni kullanici gibi kullanilmasi degil, sanki her kullanici bir Windows oturumu açiyor gibi kullanmasiydi.
özellik 3. Component (Dis bilesenler) kullanilabiliyordu.
IIS 4.0 (NT Option Pack ile birlikte gelmektedir) ile birlikte ASP günümüzde bulundugu konuma oldukça yaklasmis oldu.
Bunun arkasindan genç Unix klonlari için de Perl'in gelistirilmis sekli olan PHP olusturuldu. ASP'nin özelliklerinin çok benzer bir kopyasi olan PHP'de de oturum açabiliyordu.
bilgisayarınızda asp çalıştırmak için genellikle iis (internet information serv
ices-ınternet bilgi hizmetleri) kurmanız söylenir. fakat illa ki iis kurmanız da gerekmiyor. özellikle windows xp home kullanıcıları için baby asp web server yazılımı sayesinde bir asp sunucusu kuracağız.
1-) İlk önce Programı indir {buradan}Program tamamen ücretsiz, içerisinde casus yazılım yok ve sadece 85 KB (Vay be 85 kB'lık yazılımla ASP çalıştırmak. İnanamıyorum vs.. )
2-) Program indikten sonra arşivleme yazılımlarından birisiyle açın. Kurulumu yok zaten. Aşağıdaki resimde de görüldüğü gibi babyweb.exe dosyasını çalıştırıyoruz
3-) Pogramı çalıştırdıktan sonra aşağıdaki ekran geliyorsa her şey yolunda demektir. İşe hepsi bu kadar.
Şimdi de programı yapılandıralım ki bizim istediğimiz gibi çalışsın. Yukarıdaki gibi program penceresi açıkken Server -> Settings menüsüne girin. Açılan iletişim kutusunda şunlara dikkat etmeliyiz.
Listen on port : Web sunucumuzun hangi port üzerinden hizmet vereceğini belirtir. Varsayılan olarak 80 nolu port kullanılır fakat bunu değiştirebilirsiniz. Örneğin bilgisayarınıza Apache gibi daha önceden bir web server kurmuş iseniz ve bir port çakışması oluyorsa buraya 8080 ya da 85 girebilirsiniz.
Web Pages : ASP sayfalarınızı hangi klasör içerisinden çalıştıracağınızı buradan ayarlıyorsunuz. Burası sizin root yani kök dizininizi gösterir.Varsayılan olarak C:\webpages klasörü atanmış. Fakat ben biraz da IISye özenerek C:\Inetpub\wwwroot adında bir klasör oluturup ve Web Pages alanına bu klasörün yolunu girelim. Artık kodladığımız tüm ASP sayfalarını C:\Inetpub\wwwroot altına kaydetmeliyiz.
Default Page : Root dizini içerisinde İLK ÖNCE hangi türdeki sayfanın web tarayıcısına gönderileceğini gösterir. Varsayılan olarak index.html atanmış. Fakat buraya isteğinize bağlı olarak index.asp, default.asp, board.asp gibi değerler girebilirsiniz. Bunun sonucunda siz web tarayıcınıza http://localhost/ yazdığınızda ve entera bastığınızde ilk önce burada yazılı sayfa aranır ve size gösterilir.
Disable directory listing : Bu seçenek işaretli ise dizin içerisinde ne var ne yoksa kullanıcıya gösterilir. Güvenlik açısından bu seçenek daima işaretli olmalıdır.
Automatically activate server at startup : Baby ASP Web Server yazılımının Windows başlangıcında otomatik olarak çalışıp çalışmamasını buradan belirliyoruz. Eğer her defasında sunucuyu manuel başlatmayı istemiyorsanız bu seçeneğe işaret koyun. Sunucumuz sisteme yük getirmediği için daima çalışır halde kalmasını ve bu seçeneğin işaretli kalmasını öneririm.
Ayarlarımızı da yukarıdaki gibi yaptıktan sonra artık ASP ile çalışmaya başlayabilirsiniz. Not defterini açın ve aşağıdaki kodları yazın.
<% Response.Write "<h2>Merhaba.<br>Ben Bir ASP dosyasıyım.<br><br>Main-Board</h2>" %>
Dosyayı uzantısı ASP olacak şekilde C:\Inetpub\wwwroot dizini altına kaydedin. İnternet Explorerı veya Fifrefoxu açın ve adres satırına http://localhost/ yazın. Sorunsuz bir şekilde aşağıdaki görüntü geliyorsa her şey tamam demektir.
hata : microsoft ole db provider for odbc drivers (0x80040e14)
[microsoft][odbc microsoft access sürücüsü] insert into deyimi, bilinmeyen alan
adı içeriyor: ?kisipasif?. adı doğru yazdığınızdan emin olun ve işlemi yeniden
deneyin. /uyelik/functions.asp, line 114
sebebi : tablonuzda olmayan bir field?e kayıt yapmak istediniz.
çözümü : sql deyimindeki yazılışı yanlışsa düzeltin. eğer tabloda
böyle bir field yoksa yaratın.
hata : server nesnesi, asp 0177 (0x800401f3) geçersiz progid bu
iletiyle ilgili daha fazla bilgi için, lütfen aşağıdaki adresten microsoft
.asp
sebebi : server ?ınızın yada pws ?nin desteklemediği bir bileşen kullanmak istemişsiniz. örneğin mail
gönderme veya asptear.
çözümü : pws altında çalışıyorsanız : bu işlemler windows altından
yapılamaz. hosting server ?ında çalışıyorsanız : kullanmak istediğiniz bileşen servera
kurulmamış. firma sorumlusuna başvurun.
hata : microsoft ole db provider for odbc drivers (0x80040e10)
[microsoft][odbc microsoft access sürücüsü] çok az parametre. 1 bekleniyor
sebebi : sql kodu içinde işleme tabi tutmak istediğiniz alan yok
çözümü : yazdığın alan adını kontrol edin, tablonun böyle bir alan
içerdiğinden emin olun
hata : adodb.recordset (0x800a0cc1) öğe, istenen ad veya sıra
sayısı ile ilişkili derleme içinde bulunamıyor
sebebi : alan adı bulunamıyor.ekrana yazdırmak istediğiniz veya
kullanmak istediğiniz alan adı tabloda yok
çözümü : yazdığınız alan adını kontrol edin, tablonun bu adda bir
alan içerdiğinden emin olun
hata : adodb.recordset (0x800a0bb9) yanlış türdeki değişkenler
kabul edilebilir aralık dışında veya bir başkasıyla çakışan
bağımsız değişkenler kullanılıyor
sebebi : recordset?i açmaya çalıştığımız connection adı bulunamadı veya programlar
açılmadı.başka bir sebepte sql kodu bulunamadı
çözümü : connection?ı açın veya adını kontrol edip, düzeltin.yada sql kodunu
yazdığınızdan emin olun
hata : microsoft ole db provider for odbc drivers (0x80040e14)
[microsoft][odbc microsoft access sürücüsü] select deyimi, saklı bir sözcük
veya yanlış yazılmış veya ek... bir bağımsız değişken içeriyor
veya noktalama işareti yanlış
sebebi : yazdığınız sql kodunda bir sorun var.
çözümü : yazdığınız sql kodunu kontrol ediniz
hata : microsoft ole db provider for odbc drivers (0x80004005)
[microsoft][odbc microsoft access sürücüsü]genel hata ?temporary (volatile) jet dsn for process 0x140 thread 0x5ec dbc
0x13679bc jet ? kayıt defteri anahtarı açılamadı.
sebebi : belirttiğiniz adreste veritabanı bulunamadığında çıkar
çözümü : yazdığınız yolu veya veritabanını kontrol ediniz
hata : ?microsoft ole db provider for odbc drivers (0x80004005) [microsoft][odbc driver manager] veri kaynağı adı bulunamadı ve varsayılan
sürücü belirtilmemiş?
sebebi : dsn adını yanlış yazdınız veya dsn tanımlamadınız.
ya da dsn-less bağlantı kodu yanlış.
çözümü : dsn adını kontrol edin veya dsn-less bağlantı kodunu gözden geçirin.
hata : ?microsoft vbscript çalışma hatası (0x800a004c) yol
bulunamadı?
sebebi : bulunmayan bir klasör veya yol yazdığınızda bu hata
çözümü : yazdığınız yolu kontrol ediniz, klasörün bulunduğuna
emin olun
hata : microsoft vbscript çalışma hatası (0x800a0044) aygıt yok?
sebebi : bulunmayan bir sürücüyü çağırmak istediğinizde alırsınız
çözümü : sürücü harfinin bulunduğuna veya doğru olduğuna dikkat edin
hata : microsoft ole db provider for odbc drivers (0x80004005)
[microsoft][odbc microsoft access sürücüsü] güncelleştirilemiyor. veritabanı
veya nesne salt okunur.?
sebebi : veritabanınız salt okunur veya yazma izni olmayan bir
çözümü : veritabının veya bulunduğu klasörün salt okunur olup
olmadığını kontrol edin
hata : ?microsoft ole db provider for odbc drivers (0x80040e14) [microsoft][odbc microsoft access sürücüsü] ?alan_adi=? sorgu ifadesi içindeki sözdizimi hatası (ek... işleç)?
sebebi : sorgulatmak için kullandığınız değer boş.bu forumdan
gelen bir veri olabilir, cookieden alınan bir değer olabilir
çözümü : gelen veriyi kontrol edin
hata : ?server nesnesi, asp 0177 (0x800401f3) geçersiz progid bu iletiyle ilgili
daha fazla bilgi için, lütfen aşağıdaki adresten microsoft online support
sitesini ziyaret edin: face=arial color=#0000ffhttp://www.microsoft.com/contentredirect.asp.?
sebebi : sunucunuzun desteklemediği bir objeyi yaratmak istemişsiniz
çözümü : obje adını kontrol edin, sunucunun desteklediğinden emin
olun
hata : ?microsoft vbscript çalışma hatası (0x800a000d) tür uyumsuz: ?a??
sebebi : eğer bir sayı ve metin ile matematiksel işlem yapmak isterseniz veya tarih değerlerinde yanlış bir işlem yapmaya kalkarsanız alırsınız
çözümü : yapmak istediğiniz işlemi kontrol ediniz.değişken türlerini tekrar gözden geçirin
hata : ?microsoft vbscript derleme hatası (0x800a0409) sonlandırılmamış dize sabiti?
sebebi : çift tırnak (?) yazmamışsınız.veya çok fazla yazmışsınız