Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » .NET makaleleri » net » asp ders notları aspye ilk adım
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

basic de excel ya da access bağlantısı yapma

Yazar: efsane58

Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 1673
Yayın Tar:03.01.2005
Yazar : erennnnn
Hit :7815

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

ASP'yeGiri?

ASP yani Active Server Pages Microsoft firmasy tarafyndan klasik HTML sayfalaryna dinamik bir yapy kazandyrmak amacyyla ortaya çykarylmy? bir programlama dilidir. Internet yeni bir teknoloji oldu?undan insanlar hayal gücü synyrlaryny bu yeni teknoloji ile zorlamaktadyrlar. ASP de bu yeni teknolojinin yeni bir parçasy olmu?tur.
ASP ile web sayfalarynyzy dinamik hale getirebilirsiniz, bunu yapmak için ASP sunucu(server) tarafynda sizin yazmy? oldu?unuz kodlary çaly?tyryr ve istemci(client) tarafyna ona özel görüntülenmesini istedi?iniz sayfayy görür. ?imdi ilk ba?langyç için kary?yk görünebilir bu yüzden isterseniz web progracyly?yndan biraz bahsedeyim.
Web programcyly?y, W3C tarafyndan standart haline getirilen HTML(Hiper Metin Anlamlandyrma Dili) ile start almy? ve CGI, JavaScript, ASP, VRML gibi dillerle devam etmi?tir. ?imdi bu dillerin farky ?udur; bu dillerin bazylary sunucu tarafynda bazylary ise istemci tarafynda çaly?maktadyr. Ylk olarak HTML?i ele alalym; HTML dosyarynynyn içeri?ini hepimiz biliyoruz. Bu içerik ba?landy?ynyz sunucu tarafydan bilgisayarynyza yollanyr ve sizde bulunan web görüntüleyici(Internet Explorer, Netscape gibi.) tarafyndan size sayfa anlamdyrylarak gösterilir. Yani tüm görüntüleme i?lemini sizin bilgisayarynyz yapar. HTML?den sonra çykan Javascript teknolojisi de buna yakyndyr. Yani dosyalar ba?landy?ynyz bilgisayar tarafyndan size yollanyr ve siz onlary bilgisayarynyzda düzenleyip görüntülersiniz. Dikkat ettiyseniz javascript(js) içeren sayfalar di?er sayfalara göre daha geç yüklenmektedir, çünkü tüm o js kodlary sizin bilgisayarynyzda çaly?tyrylyr ve tabi bu da performans kaybyna yol açar.
ASP ise tamamen Ystemci Tarafynda (server side) çaly?an bir programlama dilidir. Tüm kodlar sunucu tarafynda çaly?tyrylyr ve size sadece HTML kodlary gönderilir. Böylece performans olarak büyük bir avantaj elde edilmi? olur, tabi bu web sunuculu?u yapacak bilgisayarynyzyn hyzly olmasyna da ba?lydyr. Örnek olarak OSYM?yi dü?ünün sizden aldy?y bir ösym numarasy ile orada bir program çaly?tyryr ve bu program size sadece girmi? oldu?unuz numaraya ait sonucu bir html dökümany olarak döndürür.
Sunucu tarafly programlamanyn di?er bir avantajy ise güvenliktir. Örne?in js kodlary Kayna?y görüntüle dedi?inizde görülebilmektedir. E?er siz güvenlik açysyndan kullanycylaryn görmemesini istedi?iniz bir program çaly?tyryyorsanyz sunucu tarafy programlama yapmalysynyz. Bu tip programlamanyn ilk örne?i CGI ile gerçekle?mi?tir. Perl dili kullanylarak üretilen bu kodlar pekçok ki?i tarafyndan rahatça kullanylamamy?tyr çünkü CGI çaly?tyrmak için hosting yapty?ynyz yerde bu deste?in verilmesi gerekmektedir. Fakat asyl en büyük sorun bu kodlary geli?tiriken sizin hiçbir ?ekilde deneyememiz olmu?tur. Çaly?ty?yndan emin olmak için programy sunucuya yüklemeniz gerekmektedir.
?imdi bahsedece?im di?er bir özellik de ASP geli?tirmede kullanylan diller. En yaygyn olarak kullanylan script dili VBScript?tir. Hepimiz ilk programcylyk günlerimizi herhalde qbasic kodu yazarak geçirmi?izdir. VBScript de temel itibariyle Visual Basic dilini kullanarak program üretmemize yarar. Bunun yanynda JavaScript de kullanylabilir, fakat günümüzde js?yi kullanarak program geli?tirmemizi sa?layan yeni bir dil JSP(Java Server Pages) bulunmaktadyr.
ASPileNelerYapabilirsiniz

Asp?nin avantajlarydan ve çaly?ma manty?yndan bir önceki konuda söz ettim. Bu avantajlar göz önüne alyndy?ynda elelktronik ticaret için en kullany?ly dil olma avantajy vardyr. Çünkü güvenlik bu tür uygulamalarda çok önemlidir ve Asp de bize bu güvenli?i sa?lamaktadyr. Di?er avantajy ise çok kolay bir dil olmasydyr. Gerçekten bir perl ile program geli?tirebilecek ki?i sayysy synyrlydyr ama Asp?yi biraz programlama bilgisi olan herkes çözebilir ve çok kysa zamanda iyi i?ler ortaya koyabilir.
Asp ile veritabanyna ba?lanyp gelen verilerden faydalanarak sayfalar üretebilirsiniz. Bunun için SQL, Access veya Oracle kullanabilirsiniz. ODBC ba?lantysy yapabilece?iniz tüm veritabanlaryna Asp kullanarak eri?ebilirsiniz.
Asp ile her ?eyin ba?ynda dinamik sayfalar hazyrlayabilirsiniz. Böylece her kullanycyya farkly bir sayfa gösterebilirsiniz. Html ile bunu ypamanyz imkansyzdyr ancak farkly sayfalar yaparak bu sorunu çözebilirsiniz. Bu da zamandan ve yerden büyük kayyp demektir.
Asp kullanarak elinizdeki bilgiyi kolayca di?er insanlaryn kullanymyna açabilirsiniz. Sizde bulunan bir uygulama programyny Asp ile entegre çaly?tyrabilirsiniz. Bu da sizin B2B ve B2C uygulamalar geli?tirmenizi sa?lar.

ASP kullanan bir tasarymcy olarak, esasynda ASP?nin nesneleri ile bir ?eyler yaparyz. Ba?ka bir deyi?le, ASP kodlarymyz bu nesnelere yöneliktir. Onlary kullanma ve bir sonuç alma veya bir sonuç aktarma amacyna yöneliktir. ASP?nin nesneleri alty grupta toplanyr:

Application (Uygulama): Bir ASP sitesi, gerçekte bir program olarak görülür. Bu, HTML/CGI gelene?ine a?ina olan tasarymcylar için yeni bir kavram. ASP?yi bulan üstatlar, bir ziyaretçi, bir ASP sayfasyndan girerek, sitede gezinmeye ba?lady?ynda, onu bir programy i?leten bilgisayar kullanycysy olarak görüyorlar. Böylece sitemiz, her ziyaretçinin kar?ysyna çykty?ynda ?bir program çaly?my?? gibi sayylyyor. Bu yakla?ymyn Web tasarymcysy olarak bize harika imkanlar sunuyor. Bunlary daha sonra ele alaca?yz hiç merak etmeyin...
Session (Oturum) : Bir ziyaretçi sitemize geldi?inde, hangi sayfamyzy talep ederse etsin, bu ba?lanty ASP açysyndan bir oturum sayylyr. Her oturumun belirli bir süre devam eden özellikleri, de?i?kenleri ve de?erleri vardyr. Site tasarymynda oturum özelliklerinden geni? ölçüde yararlanaca?yz. Ancak ?Application? nesnesi ile kary?tyrylmamasy çok önemli.
Request (Talep): Browser?dan server?a ula?an bütün bilgiler, Request (Talep) nesnesinin ö?eleridir. Bu nesneyi kullanarak, istemciden gelen her türlü HTTP bilgisini kullanabiliriz.
Response (Kar?ylyk): Server?dan ziyaretçinin bilgisayaryna gönderdi?imiz bütün bilgiler, çerezler (cookie) ve ba?lyklar (header) Response (kar?ylyk) nesnesinin ö?eleridir. Bu nesneyi kullanarak, ziyaretçiye göndermek istediklerimizi iletebiliriz.
Server (Sunucu): ASP, Web Server programyny bir nesne olarak ele alyr ve onun bize sa?lady?y araçlary ve imkânlary kullanmamyzy sa?lar.
ObjectContext (Nesne Ba?lamy): Microsoft?un Transaction Server (MTS) programynyn sundu?u hizmetlere eri?memizi sa?lar. MTS, ASP sayfalary içinden, uygulama programlaryndan yararlanmamyzy sa?lar. ASP uzmanly?ynyzy ileri düzeylere ula?tyrdy?ynyz zaman MTS ve ObjectContext nesnesinden yararlanabilirsiniz.
? ? karakteri (Shift+ 2 tu? kombinasyonu) ile ba?layan satyrlar açyklama satyrlarydyr. ASP.dll, bu i?aret ile kar?yla?ty?y satyrlary i?leme sokmadan geçer.
? Az çok bildi?iniz gibi ASP kodlary <%..... %> i?aretleri arasyna yazylyrlar. ASP.dll?e yönlenen bir ASP dosyasynyn satyrlary teker teker okunurken bu i?aretle ba?layan bir satyr görülünce ?Y?te yine ba?lyyoruz... Bu bir ASP kodu ve bu sefil kod, ben olmadan hiçbir i?e yaramaz? diyen muzur .dll?imiz i?ba?y yapyyor; aradaki kodlary icra ediyor ve sonuçlary bize gösteriyor.
? E?er kodumuz içerisinde bir de?i?ken tanymlamamyz gerekir ise bunu Dim ifadesi ile yaparyz. (Örnek: Dim SiraNo,Adi,Soyadi). Birden fazla de?i?ken tanymlamamyz gerekirse aralaryna virgül koymalyyyz.



<HTML>
<HEAD>
<TITLE>JavaScript ile Tarih</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>

<BODY BGCOLOR=WHITE>

<% Dim metin

metin="<H1>Merhaba...Yine ben...Ne o hala asp mi çaly?yyorsunuz...Sizi tebrik ederim.Çok azimlisiniz...</H1>"
%>

<%
response.write metin
%>
<br>
<%
metin="<H1>Heyyy... Unuttunuz mu benim adym de?i?ken.Benim de?i?memden daha normal ne olabilir ki ???</H1>"
%>
<%
response.write metin
%>


</BODY>
</HTML>
Ylk önce metin denen kavramyn bir de?i?ken oldu?unu belirttik. Ardyndan metin de?i?kenine bir de?er atadyk.

<%
Dim SiraNo

SiraNo=3265

%>

Ardyndan ?Response? nesnesinin ?write? metodunu kullanarak bunu sayfaya yazdyrdyk. Y?te bu kadar kolay. Madem bu ??ey?in ady de?i?ken, de?i?tirdik ve yeniden yazdyrdyk...

UltraEdit?i Nasyl Kullanaca?yz?

Kullanymy gayet basit ve her ?eyden öte oldukça hyzly çaly?an bir editör... Kurulum esnasynda (daha do?rusu bitiminde), size kysayolunu nerelere koymak istedi?inizi soracak. mutlaka ?Sa? tyklayynca açylan menüye? seçene?ini i?aretleyin ki, açmak istedi?iniz dosyayy sa? tyklady?ynyzda ?Edit With UltraEdit? yazysyny görebilesiniz. Programy çaly?tyrdyktan sonra, araç çubu?unda, View/Set font bölümünden yazytipinizi Türkçe deste?i bulunan bir fonta ayarlayyn.


ODBC
Kollary syvayyp, ASP?ye kodu yazmaya ba?lamadan önce yapmamyz gereken bir i? daha var: ASP sayfalary geli?tirme ortamymyzda, ODBC (Open Database Connectivity - Açyk Veritabany Ba?lantysy) olmasy gerekir.
Windows 98, 95 (OSR2) veya NT4.0 i?letim sisteminizde Denetim Masasy?nda ODBC, ODBC32 veya ?ODBC Veri Kaynaklary (32 Bit)? adly bir simge görüyor olmalysynyz. Bunu açyn, Sistem DSN sekmesini ve açylan pencerede görece?iniz ?Ekle? dü?mesini tyklayyn. Buradaki Access, dBase, Excel, FoxPro, Paradox sürücüleri 4.00.3711.08 veya daha büyük mü? De?ilse, Microsoft?un sitesinden (www.microsoft.com/data/download.htm) Microsoft Data Access Components (sürüm 2.1.1.3711.11 GA, 6.2 MB) güncelleme dosyasyny indirip sisteminizi güncelle?tirin. Windows 2000 kurulu sistemlerde bunu yapmaya gerek yok. Böylece sisteminiz, ileride yazaca?ymyz veri-yönlendirmeli Web uygulamalary için hazyr hale gelmi? olacaktyr.






ASP?nin Derinliklerine Do?ru

Hemen hemen bütün dillerin birer derleyicisi vardyr. Yani yazdy?ynyz programy ? .exe ? ya da ? .dll ? haline getirmeden önce synayabilece?iniz bir platform. Bu platform o kadar akyllydyr ki, yazym hatalarynyzy veya hataly kodlamalarynyzy anynda tespit eder ve size sormaya bile gerek duymadan anynda düzeltir.
ASP kodlary yazarken böyle bir ?ansynyz maalesef yok. Kodlar zaten düz yazy metinlerinden olu?uyor ve direkt yorumlayycy tarafyndan okunarak sonuç bize gösteriliyor.Kysacasy ya do?ru yazmy?synyzdyr, mantyk hatasy da yoksa kod sorunsuca çaly?yr; ya da bir yerlerde küçük bir ?eyi yanly? yazmy?synyzdyr ve kodunuz çaly?maz. VBScript komutlary, anahtar kelimeleri ve de?i?ken adlarynyn büyük harf-küçük harf olmasy önemli de?ildir.
Örne?in ileride ayryntyly bir ?ekilde görece?imiz ?for? döngü deyimini a?a?ydaki bütün ?ekillerde yazabiliriz.

For kisiSayisi= 1 To 6
FOR KISISAYISI=1 TO 6
for kisisayisi = 1 to 6

VBScript?çiler genellikle komutlaryn birinci harfini büyük yaparlar: For gibi. De?i?ken adlarynda ise kendinize anlamly gelen bir biçim tutturabilir ve öyle devam edebilirsiniz.
E?er bir kod satyry çok uzun geliyor ve daha sonra anla?ylmasy imkânsyz derecede uzuyorsa, bu satyry alt çizgi (_) ile a?a?y satyrda devam ettirebilirsiniz. Örnek:

<%
If AdayNumarasi > 100 And _
AdayNumarasi < 199 Then
............................
%>

Bir de

<%
Response.write (?AdayNumarasi?)
%>

Yerine <%=AdayNumarasi%> yazylabilmesi vardyr ki bu aslynda bir yazym kuraly olmamakla beraber i?lerimizi oldukça kolayla?tyracak bir özelliktir. Bir kod ne kadar kysa ve sade olursa o kadar güzel demektir. Yçinden çykylmaz ve karma?yk kodlamalardan ne kadar kaçynyrsak hata yapma ihtimâlimiz de o kadar azalacaktyr.
De?i?im rüzgarynyn etkisinden bir türlü kurtulamayanlar: DE?Y?KENLER
Programcylykta i?lemlerimizi de?i?kenlerle yaparyz. de?i?keni bir kap gibi dü?ünebilirsiniz. Sözgelimi ?aylar,? de?i?kenin ady ise bu de?i?kenin de?eri Ocak, ?ubat, Mart, vs. olabilir. Her de?i?ken, türüne göre, ya bir ya da daha fazla de?er tutar. Adyndan da anla?ylaca?y gibi de?i?kenin de?eri de?i?ir! Bu de?i?ikli?i biz yapabiliriz, programyn kendisi de yapabilir.
VBScript?te, bir çok ba?ka bilgisayar programlama dilinden farkly olarak de?i?kenlerin tanymlanmasy veya ?beyan edilmesi?, ?boyutlandyrylmasy? gerekmez. Belirtilmemi?, önceden tanymlanmamy? bir de?i?kene de?er atamaya kalkarsanyz, VBScript bunu mükemmel ?ekilde kabul eder. Fakat bu kötü bir programcylyk örne?idir. Yyi programcylyk de?i?kenlerin önceden tanymlanmasyny gerektirir. Bunu ?DIM? komutuyla yaparyz. DIM, Dimension (boyutlandyr) kelimesinden kysaltylmy?tyr. Pek akyllyca görünmese de bu komut, bilgisayaryn de?i?ken yeri olarak bir bellek alanynyn boyutunu belirtmesini sa?lar. Örnekler:

<%
DIM Gun, Ay, OgrenciAdi, OgrenciNo, Not
Gun = ?Persembe?
Ay = ?Mart?
OgrenciAdi = ?Selim?
OgrenciNo = 1080 ?sayysal tanymlamalarda tyrnak i?areti kullanmady?ymyza dikkat edelim.
Not = 4
%>

?imdi burada Gun, Ay, OgrenciAdi, OgrenciNo, Not adyyla be? de?i?ken olu?turdu?umuzu ve bunlara syrasyyla ?Persembe?, ?Mart?, ?Selim?, ?1080? ve ?4? de?erlerini atady?ymyzy görüyorsunuz. Bu noktada VBScript yorumlayycysyna sorsanyz, ?Peki, söyle bakalym. Gun de?i?keninin de?eri nedir?? De?i?ken isimleri, mutlaka harfle ba?lamalydyr; içinde noktalama i?aretleri bulunamaz ve uzunlu?u 255 karakteri geçemez.


Daha ?imdiden kötü programcy olmayyn !!!

ASP, sitemize giren bir ziyaretçiye bir oturum (Session) açar ve bazy de?i?kenleri oturum boyunca aklynda tutar. Bir sayfada kullandy?ynyz bir de?i?keni, daha sonraki sayfada kullanabilmek için, bu de?i?kenin de?erinin yeni sayfada de?i?memesi gerekir. ASP programy yazarken, bazen geli?igüzel de?i?kenlere de?er atayabilirsiniz. Neden? O anda aklynyza de?i?ken ady olacak kelime gelmedi?i için! Bu de?i?ken adyny daha önce kullanmy?sanyz ve içinde biraz sonra kullanaca?ynyz bir de?er varsa, de?er de?i?tirilmi? olacaktyr. VBScript, savurgan ve da?ynyk programcyly?y önlemek için OPTION EXPLICIT imkanyny verir. Bir ASP sayfasynyn birinci satyry olarak

<% OPTION EXPLICIT %>

yazarsanyz VBScript DIM komutuyla belirlenmemi? de?i?ken kullanmanyza izin vermez; kullanyrsanyz hata verir ve durur.
Bu ifadenin i?inize çok yarayaca?y bir di?er nokta, kodda de?i?ken adyny yazarken hata yapmanyzy önlemektir. VBScript sizin hata yapty?ynyzy bilemeyece?i için yanly? kelimeyi yeni bir de?i?ken sayacaktyr. De?er atamady?ynyz bu yeni de?i?keni kullandy?ynyz yerlerde ya programynyz hata verir, ya da kendisine do?ru görünen i?lemler yapar; bekledi?iniz sonucu elde edemezsiniz. OPTION EXPLICIT, yanly? yazdy?ynyz de?i?keni yeni de?i?ken sayarak önceden tanymlanmamy? de?i?ken kullandy?ynyzy dü?ünerek, duracaktyr.

Peki, de?i?kenimizi tutup farkly bir ?ekilde tanymlarsak neler olur:


<%
DIM Gunler(31), Aylar(12), Ogrenciler(210), Notlar(10)
%>

Bu yöntemle olu?turdu?umuz de?i?kenler, aslynda birer ?havuz? olup birden fazla de?er tutabilir. Yani:

<%
DIM Gunler(7), Aylar(12), Ogrenciler(21), Notlar(10)
Gunler(1) = ?Pazartesi?
Gunler(5) = ?Cuma?
Aylar(10) = ?Ekim?
Ogrenciler(12) = ?Selim?
Notlar(4) = 4
Notlar(5) = 5
%>

Bu durumda içinde 7 ayry de?i?ken tutabilecek olan Günler de?i?keninin 1 numaraly olanynyn de?eri ?Pazartesi?, 5 numaraly olanynyn de?eri ise ?Cuma? olacaktyr. Ayny ?ekilde 12 de?er tutabilecek olan Aylar de?i?keninin 10 numaraly olanynyn de?eri ?Ekim?, 100 farkly de?er tutabilecek olan Ogrenciler de?i?keninin 12 numaraly olanynyn de?eri ?Selim? ve nihayet 10 ayry de?er tutabilecek olan Notlar de?i?keninin 5 numaraly olanynyn de?eri ise 5 olacaktyr. Böyle, birden fazla de?er tutabilen de?i?kenlere Dizi De?i?ken veya Array denir.

Dizi De?i?kenler (Array fonksiyonu)

VBScript dili kullanylmaya hazyr bir çok fonksiyon içerir. Bunlardan biri olan Array ile, kolayca dizi de?i?ken olu?turabiliriz.
Diyelim ki, Aylar(12) dizi-de?i?kenini yyl içerisindeki aylaryn adlary ile doldurarak olu?turmak istiyoruz:

<%
Dim Aylar = Array (?Ocak? , ??ubat? , ?Mart? , ?Nisan? , ?Mayys? , ?Haziran?, ?Temmuz? , ?A?ustos? , ?Eylül? , ?Ekim? , ?Kasym? , ?Aralyk? )
%>
?eklindeki satyrlar ile hem dizi-de?i?keni olu?turabiliriz; hem de de?erlerini atayabiliriz.
Bu yapyda olu?turdu?umuz dizi de?i?kenin üyelerini daha sonra syra numaralary ile ça?yrabilirsiniz. Örne?in:

<%=Aylar(3)%>

bize Nisan?y verir. Neden?
Çünkü hayatlarynyn büyük bölümünü bilgisayar ba?ynda ve havasyz ortamlarda geçiren, ço?unlukla asosyal ki?iler olan dil tasarymcylary, sayy saymaya biz normal insanlar gibi 1?den de?il 0?dan ba?larlar. Dolayysyyla, Aylar dizi-de?i?keni Aylar(0)?dan ba?lar!

Burada aklynyza ?u soru gelebilir: Dizi de?i?ken olu?turaca?ymyza, neden ?ogrenci1?, ?ogrenci2?, ?ogrenci3? ya da ?Gunler1?, ?Gunler2? diye de?i?kenler olu?turmuyoruz ve bunlara de?erler atamyyoruz?
Her ?eyden önemlisi dizi de?i?kenlerde bir de?i?kene numarasyyla atyfta bulunabilirsiniz. Numara yerine bir ba?ka de?i?keni kullanabilirsiniz. Örne?in, OgrenciNo de?i?keninizin de?eri 12 ise

<%
....
If Ogrenciler(OgrenciNo) = ?Selim?
...
%>

?eklinde bir döngü ile arady?ynyz ö?rencinin Selim olup olmady?yny synayabiliriz.
Ba?ka programlama dillerine özellikle Visual Basic?e â?inâ olanlaryn aklyna ?öyle bir soru gelebilir: ?VBScript?te de?i?kenin metin mi, sayy my oldu?unu ayyrt etmiyor muyuz?? Ba?ka programlama dillerinde bir de?i?kenin de?eri harf ve rakamlardan olu?uyorsa, yani matematik i?lem yapmaya elveri?li de?ilse bunlara String (Alfanümerik, karakter de?erler, dizgi) denir. Programlama dillerinde bir de matematik i?lem yapmaya elveri?li de?i?ken türü vardyr: Sayy (Number). VBScript, bir de?i?kene alfanümerik (karakter, metin) olarak atady?ynyz de?eri çift tyrnak içine almanyzy ister. Sözgelimi Kediler(12) de?i?keni için Minno? de?erini atamak istiyorsunuz. Minno? kelimesini çift tyrnak içine almak zorundasynyz. Sayy olarak kullanaca?ynyz de?erleri ise tyrnak içine almazsynyz. (Sayy olarak kullanaca?ynyz de?erlerin sadece rakam olabilece?ini hepimiz biliyoruz!)
Fakat, i?leri kary?tyran nokta, VBScript açysyndan de?i?ken türü diye bir ?ey olmamasydyr. Visual Basic, küçültülüp script dili haline getirilirken, de?i?ken türü özelli?i alynmayynca, ortaya i?leri kary?tyran (belki de oldukça kolayla?tyran) böyle bir durum çykmy? bulunuyor. Kary?yklyk, çift tyrnak içinde verdi?iniz bir de?eri matematik i?lemde kullanmaya kalkty?ynyzda kar?ynyza çykabilir. Rakam olmayan bir karakter dizisini bir de?i?kene tyrnaksyz olarak atady?ynyzda VBScript ?tanymsyz de?i?ken? vermeye kalkty?ynyzy söyleyerek duracaktyr.
VBScript?in bu eksikli?ini gidermek için bazy ASP programcylary de?i?ken adlarynyn önüne karakter dizileri için ?str? harflerini koyarlar: strAy, strOgrenciler, strMailAdresi gibi.
Ysterseniz, VBScript?in karakter-dizisi ve sayy de?i?kenleri nasyl ayyrt etti?ini veya etmedi?ini bir kaç örnekle görelim. ?u kodu yazarak, çaly?tyralym:

<% Option Explicit %>
<HTML>
<%
Dim Degisken(2), Toplam
Degisken(1) = "Mustafa"
Degisken(2) = "Do?an"
Toplam = degisken(1) + Degisken(2)
%>
<% =Toplam %>
</HTML>

Sonuç: ?MustafaDo?an? de?il mi? (Arada bo?luk olmamasyny ?imdilik önemsemeyelim.) Peki; ?imdi Degisken(1) de?eri olarak tyrnak içine alarak 5, Degisken(2) de?eri olarak yine tyrnak içinde 10 yazyn. Programy tekrar çaly?tyryn. Haydaa! Sonuç 510? Peki, tyrnaklary kaldyryn. Sonuç? 15. Ne o? Bu dili tasarlayanlaryn matematik bilmediklerini mi sandynyz :)
Bu durum VBScript?in matematik bilgisinin kytly?yndan de?il, tyrnak içindeki de?erlerin, VBScript ayrym yapmyyor olsa bile, karakter dizgisi (string) iken toplama i?leminde art arda eklenmesinden (concatenate) kaynaklanyyor. Tyrnaklary kaldyrdy?ynyzda, VBScript bu de?erlerin sayy oldu?unu anlady ve do?ru i?lemi, yani toplama i?lemini yapty. ?imdi VBScript?in de?i?kenleri ele aly? tarzyny daha iyi kavramak için Degisken(1) de?eri olarak tyrnak i?areti koymadan kendi adynyzy, Degisken(2) de?eri olarak da soyadynyzy yazyn ve programy çaly?tyryn. Ne sonuç aldynyz?
VBScript?in kullandy?y tek tür de?i?kene variant denir. Variant, karakter-dizini (String) de olabilir, sayy (Number) da. Fakat bir variant?yn içindeki de?er, veri olarak nitelendi?inde ?u türlerden birine girer:

Boolean De?i?kenin de?eri ya True (do?ru) ya da False (yanly?) olur; True?nun de?eri ?1, False?un de?eri ise 0?dyr.
Byte 0 ile 255 arasynda bir sayysal de?er olabilir.
Double Yüzen noktaly de?er denilen veri türüdür. Pozitif sayylar için 4.9E-324 ile 1.8E308 arasynda, negatif sayylarda -4.9E-324 ile -1.8E308 arasynda bir de?er alabilir.
Date/Time Önceden belirlenmi? biçimlerde tarih ve zaman bilgisi içerir.
Empty Tanymlanmy? ancak henüz de?er atanmamy? (bo?) de?i?ken türüdür.
Error Programyn hata mesajlaryny ve hata de?erlerini tutar.
Integer Noktalyk bölüm içermeyen tamsayy verilerdir; de?eri -32.768 ile +32.767 arasynda olabilir.
Long Noktalyk bölüm içermeyen tamsayy verilerdir; de?eri -2.147.483.648 ile 2.147.483.648 arasynda olabilir.
Null Yçinde veri bulunmamak üzere tanymlanmy? de?i?kenlerdir.
Object Windows OLE Nesnelerini tutmak üzere tanymlanmy? de?i?kenlerdir.
Single Yüzen noktaly de?er denilen veri türüdür. Pozitif sayylar için 1.4E-45 ile 3.4E38 arasynda, negatif sayylarda ?1.4E-45 ile -3.4E38 arasynda bir de?er alabilir.
String Alfanumerik veri tutan de?i?kenlerin de?eridir





De?i?kenlere nispet, De?i?meyenler

Diyelim ki, bütün kodunuz boyunca kullanaca?ynyz bir de?i?mez de?eriniz var. Bu tip sabit bir de?er. Bütün ASP sayfasy boyunca (hatta isterseniz, bütün site, yani uygulama boyunca) de?i?meden kalyr. Bu de?erleri Const (constant, sabit kelimesinden türetilme) komutuyla belirtiriz:

Const dolarBirimFiyat = 677000
Const KarsilamaMetni = ?WELCOME...Web sitemize ho? geldiniz.?
Const UreticiFirma = ?Sony Electronic?

VBScript?te Y?lemciler (Operatörler)

Bilgisayar operatörü ile program operatörü arasynda fazla bir fark yoktur. Her ikisi de verdi?iniz de?erleri ya kar?yla?tyryr bir sonuç bulurlar; ya da bu de?erlerle aritmetik i?ler yapar ve bir sonuç ortaya çykartyrlar. Bilgisayar operatörü daha sonra bu i? için sizden para ister; program operatörü istemez. (Bilgisayary edinebilmek için Türkiye ?artlarynda yeterince harcama yapyyorsunuz zaten!) VBScript?in operatörleri ve yaptyklary i?ler ?öyle syralanyr:


Operatör: Y?lev: Synyfy:

+ Toplama Aritmetik
- Çykartma
* Çarpma
/ Bölme
^ Üssünü alma
Tamsayy bölme
Mod Modüler aritmetik
= Bir de?i?kenin di?erine e?it oldu?unu synar Kar?yla?tyrma
<> Bir de?i?kenin di?erine e?it olmady?yny synar
>and< Bir de?i?kenin di?erinden büyük veya küçük oldu?unu synar (and kelimesi var)
>= and <= Bir de?i?kenin di?erinden büyük veya e?it, veya küçük veya e?it oldu?unu synar (and kelimesi var)
Is Bir ifadedeki iki referansyn ayny Nesne?ye yapylyp yapylmady?yny synar
And Bir veya daha fazla de?i?keni test olarak kar?yla?tyryr Mantyksal
Or Bir i?lemin devamy için hangi ko?ulun olu?masy gerekti?ini synar
Not Bir ifadeyi negatif hale getirir
XoR Sadece bir ?artyn do?ru olup olmady?yny synar
Eqv Yki de?i?kenin e?itli?ini synar
Imp Yki ifadede mantyksal implikasyon i?lemi yapar.

VBScript ile yazaca?ymyz ASP sayfalarynda bu i?lemcileri bekledi?imiz sonucu verebilmesi için kullanym syralary önemlidir. Bunu bir örnekle açyklayalym: 100?den 6?yy çykarmak ve sonucu 2?ye bölmek istiyorsunuz; sonuç 47 olacaktyr. Yani, 100-6/2; de?il mi? Bu i?lemin VBScript?teki sonucu 97 olacaktyr. Çünkü, VBScript önce 6?yy 2?ye bölecek ve elde etti?i sonucu 100?den çykartacaktyr. VBScript?te, aritmetik i?lemlerin yapylma syrasy ?öyledir:

Operatör: Y?lev: Öncelik:
+ Toplama 3
- Çykartma 3
* Çarpma 2
/ Bölme 2
^ Üssünü alma 1

VBScript ile hesap i?lemi yaparken, aritmetik i?lem syrasyny kary?tyrarak hataly sonuç almamak için syk syk parantez kullanmak yerinde olur. Yukarydaki örnek ?öyle yazylabilirdi: (100-6)/2. Tabiî amacynyz 100?ü 6/2?ye bölmek ise bu i?lemi ?öyle yazmalysynyz: 100-(6/2).

BA? DÖNDÜREN KODLAR!

Bir programyn amacy ve büyük ölçüde varlyk sebebi (ister basit bir script diliyle, ister gerçek programlama diliyle yazylsyn), kar?ysyna çykabilecek veya ona yönlendirilecek çe?itli durumlary de?erlendirerek, kendisine izin verilen çizgiler içerisinde kendi kendine kararlar verebilmesidir. Bu noktada dizginleri elimizde tutabilecek yegâne ki?iler olarak biz, programcylar, program kontrol ö?elerini kullanyryz. Programlar, bu ö?eler sayesinde kar?yla?tyrma yaparlar; belirli durumlaryn olu?up olu?mady?yny tahlil ederler. Ya da, belirli bir durumun olu?masyna veya sona ermesine ba?ly olarak bir i? yaparlar veya yapmazlar. Kysacasy, karar verirler. Bunu synamalarla (?artly ifadelerle) veya döngülerle sa?laryz.
Örne?in, programymyza istedi?imiz bir ?art yerine gelene kadar hep ayny ?eyi yapmasyny söyleyebiliriz; yani, döngüye sokaryz. ?artymyz sa?landy?ynda döngüye son verip bir sonraki adyma geçmesini sa?layabiliriz. Kimi zaman da, programa (programyn manty?y çerçevesinde) istedi?imiz anda yapmakta oldu?u i?i durdurarak, ba?ka bir i?i yapmasyny bildirebiliriz. Bunlara da süreçler (veya prosedürler) denir.
VBScript?te programyn kendi kendine karar vermesini sa?layan en basit yapy, ?E?er...ise...yap!? ?eklinde kar?ymyza çykar. Bu yapyyy kullanmak için de?i?ik VBScript komutlary vardyr.

IF...ELSE

Bu yapy belki de en eski ve en kli?e mantyksal analiz yapysydyr. Hemen hemen bütün diller de bu ?ekilde kullanylyyor olmasy da cabasy...
Bu komut, VBScript?in verece?iniz bir durumun bulunup bulunmady?yny synamasyny sa?lar. Genel yazym kuraly ?öyledir:

If ?art Then
[?art do?ru ise yapylacak i?ler]
Else
[?art do?ru de?ilse yapylacak i?ler]
End If

Bunu bir örnekle ifade edelim: E?er saat 12?den önce ise sayfaya ?Günaydyn? yazdyr. Ayryca sayfanyn arka plan rengini ?açyk mavi? yap; saat 12?den sonra ise ?Tünaydyn? yazdyr ve arka plan rengini de?i?tir. Saat 18?den sonra ise sayfaya ?Yyi ak?amlar!? yazdyr; ayryca, arka plan rengini siyah yap. If döngüsü kendi içinde synyrsyz Elseif (ikinci ?artly döngü) imkâny vererek bize bunu sa?lar. Her Elseif?i yeni bir If gibi dü?ünebilirsiniz. Bu pek de gerekli olmayan faaliyeti gerçekle?tirmek için gerekli olan kod:


<HTML>
<HEAD>
<TITLE>ASP ILE SAATE GORE SELAM</TITLE>
<META http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<META http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>


<CENTER>

<h2>
<font color="#FFFFFF">
<! -- birinci durum-->
<%
If Hour(Now) <12 Then
Response.write "Günaydyn !!"
Response.Write "<body bgcolor='#0066CC'>"
%>

<! -- ikinci durum-->
<%
ElseIf Hour(Now) >= 18 Then

Response.Write "Yyi ak?amlar! "
Response.Write "<body bgcolor='#000000'>"
%>

<! -- üçüncü durum-->
<%
Else
Response.Write "Tünaydyn! "
End If
Response.Write "<body bgcolor='#FF9900'>"

%>

</font>

</H2>

</CENTER>
</HTML>

Burada dikkat edece?imiz hususlar;
? ?Response.write? metodu ile sadece sayfanyn metin kysmy ile u?ra?makla kalmayyp, sayfanyn di?er unsurlaryny da de?i?tirebilirsiniz.Mesela biz burada arka plan rengini de?i?tirdik.
? Response.write ?<body bgcolor=?#000000?>? yazarak sayfanyn body etiketini kendi istedi?imiz ?ekilde olu?turmu? olduk. Sizce buradaki süreç nasyl i?liyor? Kod i?lenmeye ba?landy?ynda ve bu satyra gelindi?inde sayfanyn içerisine o satyr yazylyyor. Web tarayycysyna saf html kodlary halinde ula?an sayfamyz, bu defa tarayycy tarafyndan i?lenmeye ba?lyyor. Bir de bakyyor ki ASP kodu tarafyndan sayfanyn içine yazylan ?ey, aslynda bir tag.görevi. Bu sefer hemen onu i?liyor ve sonucu bize gösteriyor.

Bu programy çaly?tyrdy?ynyz zaman, çaly?tyrdy?ynyz saate göre sayfadaki selamyn ve arka plan renginin de?i?ti?ini göreceksiniz. (Bu örnekte, sadece ?artly döngü i?lemi yapmyyoruz; fakat ayny zamanda Hour(Now) fonksiyonu ile tany?yyoruz ve sayfadaki bütün unsurlary ASP yöntemiyle yazdyryyoruz! Fakat ?imdilik bu iki unsurun üzerinde durmayyn.)
Daha önceki yazylarymyzda asp?nin bir sürü hazyr fonksiyonu var demi?tim.
Bunlardan biri de o andaki saati ve tarihi bildiren Now() fonksiyonudur. Bu fonksiyondan dönen de?erle bu andaki saati ö?reniyoruz; bunu önce 12 ile kar?yla?tyryyoruz. Fonksiyondan dönen de?er, e?er 12?den küçükse, programymyz Response (Kar?ylyk) Nesnesi?nin .Write Metodu?nu kullanarak (Nesneler ve Metodlar meselesi üzerinde de durmayyn!) ziyaretçinin Browser penceresine ?Günaydyn? yazdyryyor.


De?er döndürenler...

Fonksiyonlar, kendilerini göreve ça?yran VBScript komutlaryna ve i?lemlerine mutlaka bir sonuç döndürerek kar?ylyk verirler. Buna fonksiyondan dönen de?er denir. Yani, Now() fonksiyonunu göreve ça?yrdy?ynyzy farzedelim. Bu fonksiyon derhal i?letim sisteminden saati ve tarihi ö?renerek kendisini göreve ça?yran i?leme bildirir. Daha sonra VBScript?in kullanylmaya hazyr di?er bir çok fonksiyonunu kullanaca?yz ve kendi fonksiyonlarymyzy yazaca?yz. Ne zaman bir fonksiyona bir noktada atyf yaparsak, o noktaya fonksiyon tarafyndan bir de?er getirilece?ini bilmemiz gerekir.

E?er bu ilk synamanyn sonucu do?ru de?ilse, VBScript If satyryndan sonraki birinci deyimi atlayacak ve ikinci deyimi yerine getirecektir. Yani e?er saat 12?den küçük de?ilse, ElseIf satyry icra edilecektir. ElseIf de typky If gibi i?ledi?i için bu kez yeni bir synav yapylacak ve saatin 18?e e?it veya büyük olup olmady?y synanacaktyr. E?er saat 18?e e?it veya büyükse, (synav sonucu do?ru ise) ilk satyr icra edilecek ve ziyaretçinin Browser penceresine ?Yyi ak?amlar!? yazdyrylacak, background rengi de?i?tirilecektir. E?er bu synavyn sonucu da do?ru de?ilse, ElseIf?in ikinci satyry icra edilecektir. Bu satyrda ise Else bulunuyor. Else; If ve ElseIf gibi synav yapmaz; ne olursa olsun, kendisinden sonra gelen deyimi yerine getirir. Yani saat 12?den küçük de?ilse, 18?den küçük veya 18?e e?it de?ilse, yani 12 ile 17 arasynda ise, ekrana ?Tünaydyn? yazylacaktyr ve rengi de?i?tirecektir.

SELECT CASE

VBScript?in bir di?er duruma bakarak karar verme ifadesi, Select Case (Durum Seç) yapysydyr. ?imdi bu ö?enin nasyl çaly?ty?yny görelim:

Durum Seç (Durumlaryn listesi veya durumlary belirten bir de?i?ken)
Durum 1 : Yapylacak i?ler
Durum 2: Yapylacak i?ler
Durum 3: Yapylacak i?ler
Durum n: Yapylacak i?ler
Seçmeyi Bitir


Yani;

Select Case de?i?ken

Case 1

--- yapylacak i?ler ---

Case 2

--- yapylacak i?ler ---

Case3

--- yapylacak i?ler ---

End Select

VBScript, verdi?iniz durum listesine veya içinde çe?itli de?erler bulunan (bu de?erleri bir ?ekilde de?i?kene yükleyecek olan sizlersiniz) de?i?kene bakarak, bu de?i?kenin her bir de?erini bir ?durum? sayacak ve verdi?iniz durumlardan hangisini tutuyorsa, ona ait komut dizisini icra edecektir.
Bir örnekle görelim:

<%
ay = month(date())
gun = day(date())
sene = year(date())

Select Case ay
Case "1"
StrAy = "Ocak"
Case "2"
StrAy = "?ubat"
Case "3"
StrAy = "Mart"
Case "4"
StrAy = "Nisan"
Case "5"
StrAy = "Mayys"
Case "6"
StrAy = "Haziran"
Case "7"
StrAy = "Temmuz"
Case "8"
StrAy = "A?ustos"
Case "9"
StrAy = "Eylül"
Case "10"
StrAy = "Ekim"
Case "11"
StrAy = "Kasym"
Case "12"
StrAy = "Aralyk"
End Select

%>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Günün Tarihi</title>
</head>

<body>



<p><font face="Verdana" size="2"><b>Günün Tarihi </b></font>: <font color="#800000">
<%=gun%> <%=strAy%> <%=sene%>
</font></p>



</body>

</html>

Bu kodu yazyp çaly?tyrdy?ymyzda programymyz üç tane farkly de?i?keni i?leme sokuyor. Bunlar ay,gün ve sene. Malum, bu de?i?kenler, kendilerine bir de?er atandy?ynda bir i?e yararlar. Bu yapmak içinde VBScriptin hazyr fonksiyonlaryndan olan

month(date())
day(date())
year(date())

ifadelerini kullanyyoruz.Aslynda bunlar, Date() fonksiyonunun alt fonksiyonlary. Daha sonra kendisine de?er yüklenen ay de?i?keni Select case ifadesinde durum konumuna yerle?tiriliyor. Bu ?u demek: ?Ey asp.dll, ay de?i?kenini al, bu de?i?kenin de?i?ik durumlaryna göre a?a?yda belirtece?im görevleri yerine getir!? Ay de?i?keninin 1,2,3,4,5,6,7,8,9,10,11,12 olmasyna göre farkly durum i?levleri tanymlyyoruz. Tahmin edece?iniz üzere bunu case ?1?, case ?2?,... ifadeleri ile yapyyoruz. Bu sayede ay de?i?keninin aldy?y sayysal de?ere göre birer StrAy de?i?keni tanymlayabiliyoruz. Bu i?lemleri tamamladyktan sonra End Select komutu ile seçim i?lemini durduruyoruz.

SIK KULLANACA?IMIZ HAZIR FONKSYYONLAR

VBScript?te kullanabilece?imiz bir iki hazyr-fonksiyona yukaryda de?indik. VBScript?in kullanylmaya hazyr daha bir çok fonksiyonu vardyr. Ancak ASP uygulamalarynda syk kullanaca?ymyz ve özellikle metin düzenlemeye ait olan bir kaçyny burada syralayalym.

? TARYH VE SAAT

Visual Basic?in hemen hemen bütün zaman-tarih fonksiyonlary VBScript?te de kullanylyr.
Date: Bugün tarihini verir. (25.03.2000 gibi.)
Time: O andaki saati verir. (22:24:40 gibi.)
Now: O andaki tarih ve saati birlikte verir. (25.03.2000 22:24:40 gibi.)
VBScript?in buna ek olarak Weekday (haftanyn günü), WeekdayName (günün ady) ve Monthname (ayyn ady) fonksiyonlary da vardyr. Bu fonksiyonlar de?erlerini Date fonksiyonuna göre alyrlar. Örne?in,


<%= WeekdayName(Weekday(Date))%>

komutu bize bugün Cumartesi ise ?Cumartesi? de?erini verir.

<%= MonthName(Month(Date))%>

komutu bize bu ay Mart ise ?Mart? de?erini verir. VBScript?in bunlara ek olarak Day (gün), Month (ay) ve Year (yyl) fonksiyonlary da de?erlerini Date fonksiyonundan alarak, size bir rakam verirler. E?er tarih 25 Mart 2000 ise:

<%= Day(Date)%> --- 25
<%= Month(Date)%>--- 3
<%= Year(Date)%>--- 2000

de?erini verir.
VBScript, bu de?erleri do?ruca i?letim sisteminden alyr. Dolayysyyla, i?letim sisteminin bölgesel ayarlary Türkiye için yapylmy?sa, gün adlary Türkçe olarak dönecektir. Ayryca, tarih ve saat biçimleri de bölgesel ayarlara ba?ly olarak, ay önde, gün arkada veya tersi, saat de 12 saat veya 24 saat esasyna göre döner. ASP programlarynyzy ki?isel Web Server?da denerken kendi bilgisayarynyzyn tarih ve saatini; gerçek Internet?te çaly?tyryrken Server?yn tarih ve saatini alyrsynyz. Sayfalarynyzda ay ve gün adlaryny Türkçe görüntülemek için, önce server?yn bölgesel ayarlaryny denemeniz ve e?er isimler Türkçe gelmiyorsa, bunlary çeviren sub?lar veya fonksiyonlar yazmanyz gerekebilir. (Yukaryda günün tarihini veren kodumuzda, sisteminizin bölge ayarlary nasyl olursa olsun ay Türkçe olarak kar?ymyza çykacaktyr )

KARAKTER DYZYSY DÜZENLEME

Karakter dizisi veya string, VBScript için her?ey olabilir. ?Bugün 7 A?ustos 2000? bir String?dir. ?Do?um Günün Kutlu Olsun!? bir string?dir. Web sitemizi ziyaret eden ki?inin formlarymyza yazaca?y ve ?Gönder? tu?unu tyklayarak server?a gönderece?i bilgiler string?dir. Fakat bunlaryn hepsi oldu?u ?ekliyle i?imize yaramaz. Bunlary yeniden düzenlemek, içinden seçmeler yapmak veya biçimlerini de?i?tirmek gerekebilir. VBScript bu amaçla kullanylmaya hazyr bir dizi fonksiyon verir:

? InStr Uzun bir string?in içinde verece?iniz daha kysa bir string?in bulunup
bulunmady?yny arar. Bulursa bu kysa string?in ba?lama noktasynyn de?erini verir. Diyelim
ki, ?Sary Çizmeli Mehmet A?a? string?ini ?GereksizLaf? de?i?kenine, ?çizmeli? kelimesini de
?Ara? de?i?kenine atadynyz. InStr fonksiyonu ile Ara?nyn de?erinin yerini GereksizLaf?yn
de?erinin içinde bulabilirsiniz:

Yer = InStr(GereksizLaf, Ara)

Yer?in de?eri 6 olacaktyr; çünkü ?çizmeli? kelimesi, uzun string?de 6?ncy karakterden ba?lamaktadyr.

? Len Bir string?in uzunlu?unu belirler. Yukarydaki örnekte yer alan GereksizLaf de?i?kenin uzunlu?unu
?öyle belirleyebiliriz:

Uzunluk = Len(GereksizLaf)

Uzunluk de?i?keninin de?eri 23 olacaktyr.

? UCase Verece?iniz bir string?in tüm karakterlerini büyük harfe çevirir.

YeniString = UCase(GereksizLaf)

Yeni String?in de?eri: ?SARI ÇYZMELY MEHMET A?A? olacaktyr.

? LCase Verece?iniz bir string?in tüm karakterlerini küçük harfe çevirir.

YeniString = LCase(GereksizLaf)

Yeni string?in de?eri: ?sary çizmeli mehmet a?a? olacaktyr.

? LTrim, RTrim, Trim: Verdi?iniz string?in (syrasyyla) solunda yani ba? tarafynda; sa?ynda
yani sonunda ve hem ba?ynda ve hem de sonundaki bo?luklary temizler.

? Space Yçinde, verece?iniz sayy kadar bo?luk olan bo? bir String olu?turur. Örne?in

Bosluk = Space(20)

Bosluk de?i?kenin de?eri ? ? (20 adet bo?luk karakteri) olacaktyr.

? String Ystedi?iniz sayyda ve istedi?iniz bir karakterle bir string olu?turur.
YeniString = String(3, ?*?)

YeniString de?i?keninin de?eri ?***? olacaktyr.

? Left, Right Bir String?in içinde soldan (ba?tan) veya sa?dan (sondan) verdi?iniz sayyya kadar olan karakterleri
verir. Örne?in, yine yukarydaki GereksizLaf de?i?kenini kullanyrsak:

Solda = Left(GereksizLaf, 4)

Solda de?i?keninin de?eri ?Sary? olacaktyr. Çünkü, GereksizLaf de?i?keninin soldan itibaren dört harfi ?Sary?
kelimesine denk geliyor.

? Mid Bir string?in içinde ba?langyç noktasyny ve karakter olarak boyunu verdi?iniz alanda yer alan
string?i verir.

Ortada = Mid(GereksizLaf, 5, 8)

Ortada de?i?keninin de?eri ?çizmeli? olacaktyr; çünkü GereksizLaf de?i?keninin soldan 5?nci
de?i?keninden itibaren 8 karakterlik alanda ?çizmeli? karakterleri yer alyyor.

? Rnd Rastgele sayy üretmek için kullanylyr.

? Int Bu fonksiyon ile ondalykly bir sayynyn tam bölümünü alabiliriz.

deger="2,25022"
yenideger=int(deger)

bu durumda deger de?i?keni 1 olacaktyr.

DYZY DE?Y?KEN FONKSYYONU

VBScript?in dizi de?i?ken olu?turmada Array() fonksiyonu ile sa?lady?y kolaylyklara kysaca de?indik. Fakat Array ile daha bir çok i? yapabiliriz ve dizi de?i?ken olu?turmakta VBScript?in di?er bazy kolaylyklaryndan yararlanabiliriz. Dizi de?i?kenler, özellikle Web ziyaretçilerimizden gelecek bilgilerin kaydedilmesinde; veritabanyndan çekece?imiz verilerin kullanylyr hale getirilmesinde yararly bir araçtyr. Dolayysyyla ASP sayfalarynyzda syk syk çok boyutlu dizi de?i?kenlerden yararlanacaksynyz. Bunun için gerekli araçlary kysaca ve topluca ele almamyz yerinde olur. Bir dizi de?i?ken olu?tururken, de?i?kenin eleman sayysyny belirtmezsek, VBScript, kendi kendine ?Anla?ylan bu diziyi dinamik yapmamy istiyorlar!? der. Daha sonra elemanlarynyn de?erleri sonradan belirtilebilecek ve eleman sayysy sonradan artyrylabilecek bir dinamik dizi de?i?ken olu?turur.

Örnek:

Dim Ogrenciler()

Bu komutla, Ogrenciler dizi de?i?keni olu?turulur. Ancak, eleman sayysy belirtilmedi?i için dizi dinamiktir. Daha sonra bu dizinin eleman sayyny belirleyebilirsiniz. Bunu,

ReDim Ogrenciler(15)

gibi bir komutla yapabiliriz. ?imdi aklynyza ?u soru gelebilir: ?Peki neden Ogrenciler dizisini ba?tan eleman sayysyny belirterek tanymlamyyoruz?? Güzel soru! Cevaby ?u olabilir mi? ?Dizi de?i?kenimizin eleman sayysyny henüz bilmiyoruz. Programyn aky?y içinde bu sayy, ba?ka bir fonksiyonun, sub?yn veya kullanycy girdisinin sonucu olarak belirlenebilir.? Fakat hemen belirtmek gereken bir nokta var: ReDim komutu, mevcut bir dizi de?i?kenin içindeki her?eyi siler! Mevcut dizinin elemanlaryny ve onlaryn de?erlerini korumak istiyorsak:

ReDim Preserve Ogrenciler(20)
yazmamyz gerekir. Buradaki Preserve (koru) komutu, VBScript?e mevcut dizi içindeki elemanlary korumasyny ve eleman sayysyny 20?ye çykartmasyny bildirir. Buna neden gerek olabilir? Ziyaretçinin tercihleri de?i?ebilir. Örne?in, bir elektronik aly?veri? sitesinde ziyaretçiniz yeni ?eyler alabilir. Daha önceki aly?veri?lerine ili?kin verileri tuttu?unuz dizi de?i?kenin eleman sayysyny, daha önceki bilgileri silmeden arttyrmanyz gerekir.
VBScript?in dizi de?i?kenlerini tümü ayny ady ta?yyan bir liste olarak dü?ünebilirsiniz; sadece de?i?ken adynyn yanynda dizinin kaçyncy elemany oldu?unu belirten sayy bulunur:

Ogrenciler(1): Necip
Ogrenciler(2): Serap
Ogrenciler(3): Neslihan

Fakat VBScript çok boyutlu dizi de?i?ken de olu?turabilir. Yki boyutlu dizi de?i?keni tablo gibi dü?ünün. Dizinin elemanlary ayny ady ta?yyan de?i?kenler fakat bu kez sadece tek sayy de?il syra ve sütun numaralary ile belirleniyorlar:

Ogrenciler(1,1): Necip
Ogrenciler(1,2): Serap
Ogrenciler(1,3): Neslihan
Ogrenciler(2,1): Selim
Ogrenciler(2,2): Murat
Ogrenciler(2,3): Merve
Ogrenciler(3,1): Elif
Ogrenciler(3,2); Hande
Ogrenciler(3,3): Leyla

?imdi, burada üç syraly, üç sütunlu bir tablo getirebilirsiniz gözünüzün önüne. Bu dizi-de?i?keni ?u komutla olu?turabiliriz:

Dim Ogrenciler(3,3)

Böyle bir de?i?kende sözgelimi birinci syra (numarasy 1,x olanlar) çaly?kanlary, ikinci syradakiler (2,x?ler) daha az çaly?kanlary belirtebilir. VBScript, üç, dört ve hatta be? boyutlu dizi de?i?ken olu?turur. Bunu nerede kullanaca?ynyzy siz kararla?tyrabilirsiniz. Bir dizi de?i?kenin herhangi bir elemanyn de?erini, programyn herhangi bir a?amasynda de?i?tirebilirsiniz:

Ogrenciler(3,2) = ?Caner?

komutu, Hande?nin adyny siler ve yerine Caner?in adyny yazar.

Dizi de?i?kenlerimizin eleman sayysyny bilmek isteyebiliriz. Kimi zaman dizi de?i?kenlerimizin eleman sayysy biz belirlemeyiz. Bu bilgi bir formdan gelebilir; bir veritabanyndan alynabilir. Ancak, mesela, bir döngü için bu de?i?kenin kaç elemany oldu?unu bilmek gerekir. Elimizde 35 elemany olan Ogrenciler dizi-de?i?keni varsa, bu sayyyy

ElemanSayisi = UBound(Ogrenciler)

komutu ile ElemanSayisi de?i?kenine yazdyryryz. ElemanSayisi?nin de?eri bu durumda 35 olacaktyr.

TEST FONKSYYONLARI

VBScript?te kullandy?ymyz bazy de?i?kenlerin o andaki durumu, programymyzyn aky?yny kontrolde kullanaca?ymyz bilgiyi sa?layabilir. Sözgelimi bir de?i?kenin de?eri bo? ise, ziyaretçimizin formu tam olarak doldurmady?yny dü?ünebiliriz. VBScript, bize de?i?kenlerin durumunu synamamyz için bazy özel fonksiyonlar sa?lar. Bu özel fonksiyonlardan dönen de?er True (do?ru) veya False (yanly?) olur; do?ru sonucun de?eri ?1, yanly? sonucun de?eri ise 0?dyr:

IsArray Bir de?i?kenin dizi de?i?ken (Array) olup olmady?yny synar.
IsDate Bir de?i?kenin de?erinin tarihe (Date) çevrilip çevrilemeyece?ini synar.
IsEmpty Bir de?i?kenin tanymlanyp de?er atanmy? olup olmady?yny synar.
IsNull Bir de?i?kenin geçerli bir de?er tutup tutmady?yny synar.
IsNumeric Bir de?i?kenin sayy olarak i?leme tâbi tutup tutulamayaca?yny synar.
IsObject Bir ifadenin geçerli bir ActiveX veya OLE nesnesine referansta bulunup bulunmady?yny synar.
TypeName Bir de?i?kenin türünü belirtir.
VarType Bir de?i?kenin türünü belirten sayyyy verir.

































ASP NESNELERY

ASP teknolojisi, typky Visual Basic dili gibi nesne yönelimli programlama yapysyna sahiptir. Nesne Yönelimli Programlama (Object Oriented Programming, OOP) deyimini bir ço?unuz daha önce duymu?sunuzdur. ASP kullanyrken de, öncelikli amacymyz nesnelerin özelliklerini kullanarak, ya bu özellikleri belirlemek ya da de?i?tirmektir. Her ?ey nesne sayylabilir. Siz programlarynyzy yazarken önce bir nesne tanymlar ya da hazyr nesneleri kullanyrsynyz. Bu nesnelerin özelliklerine hükmeder, onlary kullanyrsynyz.

Diyelim ki bir stok kontrol programy yazyyorsunuz. Bu program sizden aldy?y bilgiler y?y?ynda, merkez ambara mal girecek, mal çyky?y yapacak, size hangi üründen ne kadar kaldy?yny gösterecek, stok miktary kritik synyryn altyna indi?inde haber verecek. Bu i?ler için onlarca fonksiyon tanymlyyorsunuz ve Sub yazyyorsunuz. Bu demek oluyor ki, sizin ASP programynyzda ?ambar? diye bir nesneniz var; siz bu nesneye yönelimli program yazmy?synyz!
Her bir program nesnesi temelde iki unsura sahiptir:

Özellik (Property, Attribute): Bir nesnenin özellikleri, onun de?i?kenleridir. ?Ambar? nesnesinin ?malyn cinsi,? ?miktary,? ?tanymy,? ?fiyaty,? ?kritik miktary? gibi de?i?kenleri, yani özellikleri vardyr.

Metod (Method): Bir nesnenin i?lemesi, çaly?masy için, kysaca kendisinden bekleneni yerine getirebilmesi için çaly?ma yöntemlerine ihtiyacy vardyr. Dolayysyyla, bir ASP nesnesinin fonksiyonlary, onun metodlarydyr.
Fakat ASP?de nesneler sadece sizin öbekler halinde toplayaca?ynyz fonksiyonlar ve de?i?kenlerden ibaret de?ildir. Öncelikle, ASP programynda kullandy?ynyz script dilinin size kazandyrdy?y nesneler vardyr.
ASP sayfasyny JavaScript ile yazarsanyz ba?ka, VBScript ile yazarsanyz ba?ka dil nesnelerine sahip olursunuz. Ancak, her ikisinde de ortak olan ?scripting? nesneleri vardyr. Bunlaryn ço?u ASP?nin çaly?ty?y platform olan IIS tarafyndan sa?lanyrlar.

Nesneler kim tarafyndan olu?turulmu? olurlarla olsunlar, bir de?er döndürmekle yükümlüdürler.

Nesne.Özellik = De?er

Bir nesnenin herhangi bir özelli?inin de?erini, de?i?ken de?eri gibi kullanabilir program aky?yny buna göre de?i?tirebiliriz:

If Nesne.Özellik > De?er Then ...

Nesnelerin özelliklerinin de?erlerini de?i?kenlere atayabiliriz; ancak bunu yaparken Nesne?nin bir metoduna (fonksiyonu) göndermede bulunmamyz ve gerekiyorsa bu fonksiyona kullanmasy için veri göndermeliyiz. (Bir fonksiyona kullanmasy için gönderilen de?ere argüman/argument denir.)

Degisken = Nesne.Metod(argüman1, argüman2...)

Daha sonra bu de?i?keni istedi?imiz yerde kullanyryz. Y?in teorisine daha fazla bula?madan örnek yapalym.
Nesneler, di?er yararlarynyn yany syra, birbiri ile ilgili Sub?larymyzy, fonksiyonlarymyzy ve de?i?kenlerimizi bir arada tutmamyzy sa?lar. ?imdi VBScript ile bir nesne olu?turabiliriz:

<%
Class Ogrenci
Public Adi, Soyadi, No
Function AdiSoyadi
AdiSoyadi = Adi & ? ? & Soyadi
End Function
End Class
%>
Nesne (object) adyny verdik; fakat Class (synyf) olu?turduk! Bu grubun Object..End Object olmasy gerekmiyor mu? Belki haklysynyz. Ama bir ?synyf? ancak VBScript tarafyndan kullanylmaya ba?lanyrsa Nesne olur. Dolayysyyla biz ?synyf? yazaryz; VBScript onu Nesne haline getirir. Peki, nesneyi olu?turduk; ?imdi bunu nasyl kullanaca?yz. Çok kolay; önce bu nesneden yeni bir olgu (instance) olu?turaca?yz. Sonrasyna geçmeden önce bunu nasyl yapaca?ymyzy yazalym:

<%
Dim Ogr1
Set Ogr1 = New Ogrenci
Ogr1.Adi = ?Kemal?
Ogr1.Soyadi = ?Sunal?
Ogr1.No = ?444?

Response.Write Ogr1.AdiSoyadi
%>

Her nesne, New (yeni) komutu ile yeni bir de?i?kene bütün özelliklerini verir. Burada Ogr1 de?i?keni, yukaryda olu?turdu?umuz Ogrenci nesnesinin bütün özelliklerini kazanmy? oluyor. Ogrenci nesnesinin ?.Adi?, ?.Soyadi? ve ?.No? özellikleri olmasy gerekir; nitekim Ogr1?e bu özelliklerini burada veriyoruz. Ogrenci nesnesinin bir de metodu (fonksiyonu) var; Ogr1 bunu da kazanabilir mi? Tabiî; hem kazanyr, hem de bunu ziyaretçinin Web tarayycy penceresine yazdyrabilir.

HATASIZ KUL OLMAZ!

ASP kodlarynyzda yazym hatasy, olmayan de?i?kenlere gönderim, noktalama hatalary gibi hatalar bulunmamalydyr. Bu tür hatalary, programynyzy Web?e göndermeden önce mutlaka ayyklamalysynyz. Fakat programcy olarak öngöremeyece?iniz ve ço?u Web ziyaretçisinden veya ziyaretçinin bilgisayaryndan kaynaklanan hata durumlary olabilir. VBScript, ?u standart komutla beklenmedik hata durumlarynda programyn yoluna devam etmesini sa?layabilir:

<% On Error Resume Next %>

Bu komutla VBScript?e, hata halinde bir sonraki satyrdan yoluna devam etmesi söylenir. Fakat olu?an hata, programyn daha sonra vermesi beklenen sonucu vermesini önleyecek nitelikte olabilir. VBScript, Err (Hata) Nesnesi?nin bir çok özelli?inden özellikle hata sayysy (Number), tanymy (Description) ve kaynak (Source) özellikleri ile size hatanyn ne oldu?unu ve nereden kaynaklandy?yny söyleyebilir. Bu özellikleri kullanarak, programlarynyzda, en azyndan geli?tirme a?amasynda, örne?in,

If Err:Number = xx Then

?eklinde bir ifade ile hatanyn türüne göre programyn kazasyz yürümesini sa?layabilirsiniz. Burada xx yerine 108 ayry hata numarasy yapabilirsiniz. Hata numaralary, Microsoft?un VBScript sitesinden edinilebilir (http://msdn.microsoft.com/vbasic/).

SUNUCU NESNELERY

ASP?yi di?er CGI teknolojilerinden ayyran ba?lyca özelliklerden biri tek tek Web sayfalaryny sanki bir bilgisayar programynyn çe?itli pencereleri, diyalog kutulary, mesaj kutulary, girdi kutulary gibi bir arada bir ?uygulama programy? olarak ba?layabilmesidir. Ba?ka bir deyi?le bize, ziyaretçinin sitemize ba?landy?y ve ana sayfamyzy açty?y andan itibaren sitemizin bir program bütünlü?ünde çaly?masyny sa?layacak araçlar gerekir. Bunu ancak Web Server?yn yardymyyla yapabiliriz.

ASP sayfalarymyzda kullanaca?ymyz ikinci grup nesne, Sunucu Nesneleri?dir. Bu grupta tabiî önce Sunucu?nun kendisi yer alyr; sonra ziyaretçi ile kurdu?umuz ili?ki gelir. Ziyaretçi ile ili?kimizi iki yönlü trafi?e benzetebilirsiniz: Ondan bize gelen talepler, bizim ona kar?ylyklarymyz.

Ziyaretçiden bize gelen trafi?e neden ?Talep? diyoruz? Ziyaretçi, browser?ynyn URL hânesine yazdy?y her adresle veya formlardaki bir dü?meyi veya sayfalarymyzdaki herhangi bir köprüyü tyklamakla, server?a ?Bana ?unu göndersene!? demi? olur. Bu taleptir. Ziyaretçi taleplerinin tümü Talep Nesnesi (Request Object) olarak bir arada ele alynabilir. Server?yn bu taleplere verdi?i kar?ylyklar, yani ziyaretçinin browser?yna gönderdi?i sayfalar, resimler, sesler, videolar ise kar?ylyktyr ve ASP açysyndan Kar?ylyk Nesnesi?ni (Response Object) olu?turur.

SUNUCU NESNESY

Web Server, ASP için bir nesnedir. ASP?nin bir çok i?ini bu nesnenin özellikleri ve metodlary halleder. Server nesnesinin bir özelli?i (ScriptTimeout) ve dört metodu (CreateObject, HTMLEncode, URLEncode, MapPath) vardyr. Web Server çaly?ty?y bilgisayaryn sizin siteniz adyna yönetiminden sorumludur. Dolayysyyla, bu kadar az özellik ve metodu var diye bu nesneden çok yararlanmayaca?ymyzy sanmayyn. ActiveX ve COM bile?enlerini çaly?tyrmak server?yn görevidir.

ScriptTimeout Özelli?i: Diyelim ki bir ASP Script?i ya bizim, ya ziyaretçinin, ya da server?yn bir hatasy yüzünden sonsuz döngüye girdi! Döngünün durmasy için gerekli ?art asla yerine gelmiyor ve script bir türlü yapaca?y i?i yapyp, sonlandyrmyyor. Bu durumlarda ziyaretçinin ve tabiî server?yn sonsuza kadar beklemesi mümkün de?il! Programyn bir ?ekilde durdurulmasy gerekir. Bunu hemen hemen bütün Web server programlarynyn Script Timeout (Script süre synyry) diyalog kutusuna bir de?er girilerek yapylyr. Örne?in MS-Internet Information Server için varsayylan Script Timeout süresi doksan saniyedir. Yani ISS, herhangi bir script?in çaly?yp-durmasyny doksan saniye bekler. Bu sürenin sonunda script?in çaly?masy tamamlanmazsa ziyaretçiye arzu etti?i sayfanyn veya unsurun bulunamady?yny bildirir. Bu süreyi (server?yn varsayylan de?erinin altynda) kysaltmak de?ilse bile uzatmak elimizdedir. Bunu ScriptTimeout özelli?ini kullanarak yaparyz. ASP sayfasynyn herhangi bir yerine örne?in ?u kodu koymak yeter:

<% Server.ScriptTimeout = 100 %>

Bu örne?e göre server?yn varsayylan Script Timeout süresi doksan saniye ise yüz saniyeye çykmy? olur. Böyle bir ?eyi neden yapmak isteyebiliriz? Script?iniz çok karma?yk veya ba?ka bir server?daki veritabanyndan veri çekiyor olabilir. Gerçi bu anlamda doksan saniye bilgisayar milleti için bir asyr anlamyna gelir ama yine de durdurulmasaydy i?ini ba?aryyla tamamlayacak bir script, bu sürenin kysaly?y yüzünden server tarafyndan durdurulabilir. ASP sayfalarynyz çok karma?yksa ve sürekli Timeout hatasy veriyorsa, hata aramadan önce bu süreyi uzatabilirsiniz.

CreateObject Metodu: Ylk ASP kodunu yazdy?ymyz andan beri bu metodu kullandy?ymyzy görüyorsunuz. CreateObject (nesne olu?tur) olmasa idi, dört mevsim birbirini izleyebilir. Yukaryda kullandyklarymyz Scripting nesnesinin bir metoduydu. Bu server nesnesine aittir. Diyelim ki, sayfanyzda reklam amaçly banner grafiklerini belirli zaman araly?y ile veya ziyaretçiye gönderdi?iniz cookie (çerez) bilgilerine göre de?i?tirmek istiyorsunuz. Bunun için diyelim ki MS-Web Server Programynyn AdRotator bile?eninden yararlanacaksynyz. ?öyle bir kod i?inizi görebilir:

<% Set Reklam = Server.CreateObject (?MSWS.AdRotator?)%>
<%= Reklam.GetAdvertisement(?/reklamlar/buyukbanka.txt?)%>

Burada GetAdvertisement, Server?yn AdRotator bile?ininin bir metodudur. (Bunu ayryntyly olarak anlataca?yz.) Server?yn CreateObject metodundan, veritabanyna ula?yrken de yararlanaca?yz.

MapPath (Yolu belirle) Metodu: Web Server açysyndan ?kök dizin? (root directory) server?yn bulundu?u bilgisayaryn sabit diskinde, herhangi bir klasör olabilir. Örne?in IIS için bu varsayylan de?er olarak ?C:inetbupwwwroot? klasörüdür. Özellikle ASP ile ?program niteli?inde siteler? yapmaya ba?lady?ymyzda, sitenin ilgili bütün dosyalarynyn bulundu?u bir dizin için yol belirlemek isteyebiliriz. Bunu server nesnesinin MapPath (Yolu belirle) metodu ile yapabiliriz:

WebDizini = Server.MapPath(?/site_ismi?)

Bu komutla WebDizini de?i?kenin de?eri ?öyle olacaktyr:
?C:inetbupwwwrootsite_ismi?
Fakat bu metodun sadece böyle dura?an biçimde kullanylmasy gerekmez. Bazen sayfalarymyzda ziyaretçi ile etkile?menin sonucu olarak varsayylan Web dizinimizi de?i?tirmek isteyebiliriz. Sözgelimi biri Türkçe, di?eri Yngilizce iki sitemiz varsa ve ana sayfamyzda ziyaretçi Türkçe?yi seçtiyse, o noktadan itibaren Web uygulamamyz için Web kökdizini, ?/turkish/? olacak ve mesela resimlerimiz için verdi?imiz ?/resimler/? dizini kök dizinde de?il, ?/turkish/resimler/? klasöründe aranacaktyr. Web yolunu dinamik olarak, yani ziyaretçinin tercihine ba?ly ?ekilde de?i?tirebilmek için önce ziyaretçiden gelecek bilgileri nasyl kullanaca?ymyza, yani Request (talep) nesnesine de?inmemiz gerekir.

HTMLEncode, URLEncode: Yçinde HTML açysyndan kod parçasy veya özel i?aret sayylan karakterler bulunan metinleri sayfamyza içerik olarak gönderece?imiz zaman server?yn i?aretleri aynen metin gibi göndermesini sa?lamak için örne?in,

Server.HTMLEncode(?De?isken1 < De?isken2?)

yazarsak, ASP bu metni HTML kodu olarak yorumlamaz; metin olarak algylar. Internet?te bazen özellikle sayfa adresleri belirtilirken bazy de?erlerin ?URL Kodu? dedi?imiz ?ekilde kodlanmy? olarak gönderilmesi gerekir. Bu kodlama türünde bo?luklaryn yerine + i?areti konmu? olmasy ?arttyr. Bu tür bilgiler gönderece?imiz zaman

Server.URLEncode(?kelime 1 kelime2 kelimeme2?)

?eklindeki bir kod bunu hemen ?u ?ekle sokacaktyr:

kelime1+kelime2+kelime3

TALEP NESNESY

Web Server çok akylly bir programdyr. Bir Web ziyaretçisi herhangi bir talepte bulundu?u, yani bir sayfanyn gönderilmesini istedi?i anda, bu talebi, bir nesne hâlinde ele alyr; koleksiyonlar olu?turur. Bu koleksiyonlar, HTTP protokolü ile ileti?imin sonucu olarak ziyaretçinin browser?yndan ve Internet?e giri? noktasy olan ISS?in bilgisayaryndan ba?layan ve Web Server?dan derlenen bir dizi bilgidir. Bir anlamda, Request nesnesi, Web programymyzyn Girdi (Input) bölümünü olu?turur. Request nesnesi kendi içinde dört ana nesne baryndyryr:

QUERYSTRING VE FORM

Web ziyaretçisinin bilgisayaryndan kalkyp server?a gelen her?ey, QueryString koleksiyonunu olu?turur. Bu ziyaretçinin browser?yn URL hânesine yazdy?y bir basit HTML sayfasy yolu ve ady olabilir. Bir Form?un Gönder dü?mesini tyklady?ynda gelen bilgiler olabilir. Bu bilgilerin ?u özelliklerini kullanabiliriz:

Content_Length: Bir Form?dan gelen bilgilerin tümümün byte olarak boyutudur.

Remote_Host: Ziyaretçinin IP adresini verir. Ancak Internet?e çevirmeli a? (dial-up) ile ba?lanan ziyaretçilerimiz her seferinde farkly bir IP bildirebilirler. Bu yüzden bu bilgiyi ziyaretçinin kimli?i sayamayyz.
Request_Method: Form?da kullandy?ymyz GET veya POST metodunu bildirir. Yki yöntemle gelen bilgi farklydyr. Form?un olu?turdu?u bilgileri GET yöntemi ile alyrsak bu, çevre de?i?kenlerinden QUERY_STRING de?i?keninin içine yazylyr. Ba?ka bir ifade ile Form?daki bütün de?i?kenlerin adlary ve bu de?i?kenin içerdi?i de?er yumak yapylyr (bu yuma?yn niteli?ine ve nasyl çözece?imize gelece?iz) ve Server?da QUERY_STRING de?i?keninin de?eri olarak yazylyr. Form?un bilgilerini POST yoluyla alyyorsak bunlar Request nesnesinin Form koleksiyonunun içinde Form?un de?i?ken adlary ve ziyaretçinin bu de?i?kenler için sa?lady?y de?erler olarak ayry ayry yazylyr. GET ile synyrly, POST ile synyrsyz bilgi alabiliriz.
Script_Name: O anda çaly?tyrylmakta olan ASP sayfasynyn adyny verir.


SERVER DE?Y?KENLERY

Request nesnesinin bir di?er koleksiyonu, bizim kendi Web Server?ymyzyn o anda çaly?makta olan ASP sayfasy için olu?turdu?u ortamyn de?i?kenleridir. Bunlaryn arasynda ziyaretçinin browser?yna ili?kin bilgiler de vardyr. Önce ?u kysa ASP sayfasyny çaly?tyrarak kendi server?ymyzyn ?u andaki de?i?kenlerini görelim. Sonra bunlary ayryntyly ele alalym (SerDeg.asp):

<HTML>
<HEAD>
<TITLE>HTTP ServerDegi?kenleri Kolleksiyonu</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY BGCOLOR=white>
<CENTER>
<H2>HTTP Server De?i?kenleri Kolleksiyonu</H2>
</CENTER>
<TABLE BORDER=1>
<TR><TD><B>De?i?kenin ady</B></TD> <TD><B>De?eri</B></TD></TR>
<% For Each key in Request.ServerVariables %>
<TR>
<TD><% = key %></TD>
<TD>
<%If Request.ServerVariables(key) = "" Then
Response.Write " "
Else
Response.Write Request.ServerVariables(key)
End If
Response.Write "</TD>"%>
</TR>
<% Next %>
</TABLE>
<p>
Sizin Host'unuzun ady:<B> <%=Request.ServerVariables("HTTP_HOST")%></B>
</BODY>
</HTML>

Bu sayfayy çaly?tyrdy?ymyz zaman görüntülenecek tabloda, bir HTTP Server?yn SerDeg.asp sayfasyny çaly?tyrdy?y anda olu?turdu?u ortama ?ekil veren bütün de?i?kenleri göreceksiniz. Bu de?i?kenleri programlama yoluyla de?i?tiremeyiz. Sadece okuyup, yararlanabiliriz. HTTP Server De?i?kenleri Koleksiyonu?nun elemanlary ?öyle syralanyr:

De?i?kenin ady De?eri
ALL_HTTP http Ba?ly?y içinde yer alan bütün de?i?kenler ve de?erleri. Ba?lyk adlarynyn önünde ?HTTP_? öneki vardyr.
ALL_RAW HTTP Ba?ly?y içinde yer alan bütün de?i?kenler ve de?erleri. Ba?lyk adlary ve de?erleri istemci tarayycynyn verdi?i ?ekilde gösterilir.
APPL_MD_PATH Web Server?yn ISAPI.DLL dosyasy için varsaydy?y kök dizin
APPL_PHYSICAL_PATH Web Server?yn varsaydy?y kök dizinin gerçek yolu
AUTH_PASSWORD Kullanycy Web Server?a kullanycy ady/parola yöntemiyle ba?lanabiliyorsa, kullanylan parola
AUTH_TYPE Kullanycy Web Server?a kullanycy ady/parola yöntemiyle ba?lanabiliyorsa, kullanylan yetkilendirme yöntemi
AUTH_USER Kullanycy Web Server?a kullanycy ady/parola yöntemiyle ba?lanabiliyorsa, kullanycy ady
CERT_COOKIE Kullanycy siteye ba?lanmak için yetkilendirme sertifikasy kullanyyorsa kendisine verilen kimlik (ID)
CERT_FLAGS Sertifikanyn varly?yny gösteren bit de?eri
CERT_ISSUER Sertifika varsa veren kurum
CERT_KEYSIZE Secure Socket Layers kullanylyyorsa, ba?lanty için anahtar de?eri
CERT_SECRETKEYSIZE Özel anahtar de?eri
CERT_SERIALNUMBER Sertifika seri no.
CERT_SERVER_ISSUER Sertifikayy veren merci
CERT_SERVER_SUBJECT Server Sertifikasynyn ?konu? alany de?eri
CERT_SUBJECT Ystemci Sertifikasynyn konu alany de?eri
CONTENT_LENGTH Ystemcinin gönderdi?i bilgi yuma?ynyn boyutu
CONTENT_TYPE Ziyaretçiden gelen bilgilerin GET veya POST metoduna göre edindi?i tür
GATEWAY_INTERFACE Web Server?yn ziyaretçi ile etkile?im arayüzünün ady ve sürümü. Genellikle: CGI/1.1
HTTPS Ziyaretçi ile ba?lanty güvenli ise ON, de?ilse OFF
HTTPS_KEYSIZE Secure Sockets Layer için ba?lanty anahtar sayysy
HTTPS_SECRETKEYSIZE Özel Server sertifikasynyn gizli anahtar sayysy
HTTPS_SERVER_ISSUER Özel Server sertifikasynyn veren merci
HTTPS_SERVER_SUBJECT Özel Server sertifikasynyn konusu
INSTANCE_ID Web Server?yn ayny anda kaç kere çaly?makta oldu?u
INSTANCE_META_PATH ?u anda çaly?makta olan Web Server?yn Meta yolu
LOCAL_ADDR Ystemcinin IP numarasy
LOGON_USER Ystemci Windows NT sisteminde ise oturum açma ady
PATH_INFO Çaly?makta olan ASP?nin göreli yolu ve ady
PATH_TRANSLATED Çaly?makta olan ASP?nin gerçek yolu ve ady
QUERY_STRING Ystemcinin gönderdi?i bilgi kümesi
REMOTE_ADDR Ystemcinin Host?unun (ISS?inin) IP?si
REMOTE_HOST Ystemcinin Host?unun (ISS?inin) ady
REMOTE_USER Ystemcinin gerçek ady
REQUEST_METHOD Ystemciden bilgi isteme yöntemi (GET veya POST)
SCRIPT_NAME Çaly?makta olan ASP?nin ady
SERVER_NAME Sunucunun ady
SERVER_PORT Sunucuya ba?lantynyn geldi?i TCP kapy numarasy
SERVER_PORT_SECURE TCP kapysy güvenli ise 1, de?ilse 0
SERVER_PROTOCOL Server?yn çaly?tyrdy?y HTTP?nin sürümü
SERVER_SOFTWARE Server programynyn ady ve sürümü
URL ?u anda geçerli URL























ASP nesne yönelimli bir programlama dilinin ürünüdür. Visual Basic ya da herhangi ba?ka bir programlama dili ile program yazdy veya yazan birinin yanynda bulunduysanyz mutlaka görmü?sünüzdür: Günümüz program yazma editörlerinde önce bir form olu?turur (bu form, Web sayfalarymyzda kullandy?ymyz formlardan de?il, bir programy çaly?tyrdy?ymyzda kar?ymyza çykan görsel yapydyr) daha sonra bu forma örne?in bir ?buton? ekler ve muhtemelen yandaki özellikler menüsünden butonun bazy özellikleri de?i?tiririz. Bu son yapty?ymyz ?ey, ?buton? nesnesinin özelliklerini belirlemekten ya da de?i?tirmekten ibarettir. ASP kodlarymyzy yazarken bu ?ekilde çaly?an bir görsel editörümüz olmady?yndan (olmasy da imkânsyz zaten) olu?turdu?umuz her bir nesnenin özelli?ini, nasyl de?i?tirece?imizi bilmemiz ve buna göre hareket etmemiz gerekmektedir. Kysacasy diyece?im ?u ki; nesneleri iyi ö?renelim.



COOKIE NESNESY


SERTYFYKA NESNESY

Sertifika, HTTP ba?lantysynda ?Ben filancayym!? diyen istemcinin, gerçekten filanca olup olmady?yny gösterir. Küçük birer yazylymdan ibaret olan sertifikalary yetkili bir kurum veya ?irket verir. Bu bir tür seri numarasydyr. ?ifreleme teknikleri geli?mi? oldu?u için taklit edilmesi zordur. Sertifika uygulamasy için Web Server?yn Secure Socket Layers denen güvenli HTTP protokolünü kullanmasy gerekir.

ASP açysyndan sertifika ile ilgili her türlü bilgi ?ClientCertificate? koleksiyonunda bulundurulur. Örne?in, bir ziyaretçinin gerçekten sitenize girmeye yetkili olup olmady?yny anlamak için

<%SertifikaNo = Request.ClientCertificate(SerialNumber) %>

gibi bir kodla istemcinin Sertifika seri numarasyny SertifikaNo de?i?kenine atayabilir ve daha sonra bu de?i?kenin de?erini elinizdeki bir liste ile kar?yla?tyrabilirsiniz.

KAR?ILIK (RESPONSE) NESNESY

Gelelim Web server?yn çykty (output) i?lerini yöneten nesnesine. Response nesnesi ile server?yn istemciye gönderdi?i kar?ylyklar kontrol edilebilir. Server?dan Web tarayycysyna giden her ?ey kar?ylyktyr. Bu bir ASP veya HTML sayfasy olabilir; sayfanyn içindeki GIF, JPG veya PNG grafi?i, bir Flash animasyonu, video veya ses dosyasy olabilir. Böylesine zengin bir içeri?e sahip olan Response nesnesinin, sadece bir koleksiyonu vardyr: Cookie?ler. Buna kar?ylyk Response nesnesinin kullanabilece?imiz çok sayyda özelli?i ve metodu bulunur. Önce cookie koleksiyonunu ele alalym.

RESPONSE NESNESYNYN METODLARI

Response nesnesinin bir çok metodu vardyr; bunlardan .Write?y daha önceki örneklerimizde çokça kulandyk:





Bu sayfa için henüz yorum eklenmemiş.

© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin