Merhaba arkadaşlar ben şu gözünü sevdiğimin asp sinibilmeyen ögrenmek isteyen arkadaslara kaynak olsun diye burda ders dersveriyorum... Asp bana göre programlama Dillerinde php ve mysql ilebirlikte muhteşem üçlüyü oluşturuyor yani anlayacağınız muhtesem websitesi= asp+php+mysql bilmeten geçiyor...
Neyse Fazla gevezelik ettim sanırım derslerimize baslayalım bence arkadaşlar değil mi... hadi bismillah diyelim...
amailk olarak belirtmeliyim ki derslere geçmeden once ISS kurulumulocalhost falan bunları hazır kabul ediyorum... Ayrıca ogrenmek isteyenarkadaşlar varsa bana mail atsınlar.
DERS 1:Merhaba ASP
<!-- /* Font Definitions */ @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:162; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:536871559 0 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";}p {mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";}p.normyazi, li.normyazi, div.normyazi {mso-style-name:normyazi; mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";}span.baslik {mso-style-name:baslik;}@page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;}div.Section1 {page:Section1;}-->
Başlamadan önce bir kaç hatırlatma. ASP sayfaları HTML gibi bir düz yazı dosyasıdır. Buna göre istediğiniz bir düz yazı dosyası ile ASP sayfalarını yazabilirsiniz. HTML yazarken kullandığımız NotePad bu iş için çok uygundur. Ve 10'uncu satırın sonunda nokta olduğuna dikkat edelim. Kolları sıvayın ASP'nin büyülü dünyasına adım atıyoruz:<html>
<head>
<title> ASP ile Merhaba </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>
<h1><center>Merhaba Asp! </h1>
<h2>Bugün:
<% Response.Write(Date) %>.
</center>
</h2>
</body>
</html>
Bu dosyayı merhaba.aspadıyla kaydedelim (Nereye? PWS' in kök dizinine.) ve bilgisayarımızdabulunan Kişisel Web Server'da veya ISS' te sınayalım. Kök Dizinini ISSkurduktan Sonra ve genelde php yi daha once kullananlar içinc:/ınetpub/wwwroot dur ama yinde siz bilmiyorsanız Kök dizinini nerdeoldugunu ISS de sınayın. neyse daha sonra herhangi bir web tarayıcıpencerisinin adres kısmınasunları yazalım. Yani şöyle olmalı:
http://localhost/merhaba.asp
Bu dosyayı PWS'in kök dizinine kaydettiysek eğer sayfamız çalışmıştır. Bize Merhaba Dünya! demiş ve bugünün tarihini vermiştir:
<- Görüntü böyle olmalı...
önceşu programı acıklayayım herşey html düz yazısı fakat içeride değişikolan şey ise respose.write(date) kısmı date o günün tarihini gosterenbir fonksiyondur. response.write a dikat edin çünkü artık onu yazmaktanbelki bıkacaksınız bir bakıma print demektir yani işlevler aynı:)
Şimdi ilk ASP sayfası denememizi yaptığımıza göre biraz da işin teknik kısmından söz edelim. HTML'in ziyaretçi bilgisayarda çalıştığını biliyorsunuz. Browser URL hanesine adını yazdığımız HTML dosyasını Web Server' dan ister. Web Server dosyayı bulur ve içindeki resimleri ve diğer unusurları bizim bilgisayarımıza gönderir. Biz de sayfayı böylece görmüş oluruz. Fakat bazen server'a bize sadece bir dosya göndermesini değil, bir dosyanın içindekayıtlı komutlar varsa onları icra etmesini de bildirebiliriz. Bunu yapmanın bir yolu CGI programlarıdır. Diğer yol ise ASP'dir. Web Server, kendisinden bir ASP belgesi talep edildiğinde, önce dosyanın içeriğine bakar. Sonra da: "Hmmm. Sanıyorum bu bir .asp dosyası. Hemen bunu ASP.DLL programına göndermeliyim. Sonra da işime devam edeyim!" der.
İşte geldik en sevdiğim ayrıntı ya bence asp nin en tatlı ayrıntısıbu:)) asp.dll biricik aşkım olmustu bir zamanlar:D peki nerde buasp.dll
C:\WINDOWS\system32\inetsrv\asp.dll işte burda cok bakmayın aşık olursnuz bu zeka kupu minick şeye:))
Yaptığımız örnekte de gördüğümüz gibi ASP sayfası hem HTML kodları içerir hem de içerisinde script dili ile yazılmış kodlar vardır. ASP sayfalarımız da VBScript ve JavaScript kodları kullanabiliyoruz. Ama biliyorsunuz ki browserlar arası uyuşmazlıklar var. Mesela Netscape VBScript dilinden hiç anlamaz. Ama bizim ASP sayfalarımız serverda çalışacağı için bu sorun olmaktan çıkıyor. Bunun açıklaması şöyledir: ASP.DLL gelen sayfada hangi script dilinin kullanıldığına bakar ve bunun için gerekli ortamı oluşturur, bu script dilini yorumlayacak programı çalıştırır. Bu program da script dilini yorumlar daha sonra ASP.DLL de icra edilen komulatlar, işletim sisteminin yardımı istiyorsa (Veritabanından veri çekmek veya dosya sistemine bir dosya açtırmak, yazdırmak gibi) bu yardımın edinilmesini sağlar. Bütün bu işlerin sonunda HTML kodlarına ek yapmak (Örneğin: bir tablonun içini çekilen verilerle doldurmak veya dosya sisteminde edinilen bir dosyanın içeriğini sayfaya yazdırmak gibi) gerekiyorsa bunu ASP.DLL yapar.
ASP.DLL kendine gönderilen sayfayı satır satır okur ve önce ASP kodlarının gerektirdiği HTML değerlerini bulur. Yani önce ASP icra edilir. Sonra HTML bölümleri ile birleştirilir bu ASP komutları ve sayfaya yazdırılır. ASP sayfalarımızda yazdığımız ASP kodları görünmez. Yazdığınız VBScript ve JavaScript kodları HTML bir parçası olarak browserda görüntülenecektir. Ama sayfada ASP'ye dair hiçbir şey kalmayacaktır.
ASP sayfalarımızda genellikle VBScript dilini kullanmamızın hiç bir nedeni yoktur. JavaScript dilini de kullanabiliriz. Netscape VBScript dilini anlamaz demiştim. Bunun da bizim VBScript dilini kullanmamız ile bir ilgisi yoktur. Çünkü ASP sayfalarımızda ASP kodları görünmediği gibi bu script dilinin kodlamaları görünmez. Tabii ortaya çıkardığımız HTML sayfasının Netscape tarafından sorunsuz çalışabilmesi için Netscape'in anladığı Dinamik HTML unsurlarına yer verme zorunluluğumuz hala devam ediyor.
Temel Bilgiler: VBScript Öğreniyoruz
(Temel Yazım Kuralları)
VBScript yani Visual Basic Script. Ama biz kısaltılmış olan adını yani VBScript adını kullanıyoruz. Visual Basic dilini biliyor iseniz, VBScript dilini biliyorsunuz sayılır.
Daha önce de ASP sayfalarımızda VBScript dilini kullanabileceğimizi söylemiştim. Bu yüzden şimdi VBScript öğrenmeye başlıyoruz.
İstemci tarafında çalışan sayfalar da Netscape VBScript dilini anlamaz. Ama bizim sayfalarımız Server' da çalışacağı için bu sorun olmayacak. Sadece bir kaç VBScript komutu ile mükemmel ASP sayfaları hazırlayabiliriz.
ASP sayfalarımızdaki script dillerini, gerek VBScript, gerek diğer script dillerini sayfa içindeki HTML kodlarından ayırmamız gerekir. ASP.DLL' ye "ASP.DLL kardeş, Script dilimiz şurada başlıyor, şurada bitiyor" dememiz gerekir. Bunun için şimdi öğreneceğimiz script dili VBScript' in kodlarını <% %> işaretleri arasına alırız. Kardeşimiz ASP.DLL (kardeşimizden daha çok söz ettik ondan) bu işaretler " <% %> " arasındaki komutları yazmak yerine yapar. HTML' deki "< >" klasik unsurlar aynen sayfaya yazılır, ama <% ve %> işaretine gelince çok sevgili ASP.DLL' miz durur ve bir düşünür. <% ve %> işaretlerinin arasındaki her şey "Language" ile belirlediğimiz scriptin yorumlayıcısına gönderilir (Aralarında sürekli paslaşır bunlar). <% ve %> işaretlerine sınırlayıcı denir. Sınırlayıcının içinde bir ya da bir çok satır kod bulunabilir.
ASP ve VBScript komutlarımızın arasında "Yorum Satırımız" olmalıdır. Bu neden gereklidir? Yorum satırını bir kodu ne için nerede kullandığımızı belirtmek için kullanırız. Böylece kodlarımızı başka biri devam ettirmek istediğinde nerede ne yaptığımızı açıkça görmüş olur. Ya da uzun süre çalışmadığımız ASP sayfamızda unuttuğumuz yerler olabilir. Bunlara hatırlatma satırı da denir. Yorum satırının başına ( ' ) tek tırnak işareti koyarız. Böylece serverın yorumlayıcısı bu tek tırnağı gördüğünde, görmemezlikten gelir. Sanki hiç tanışmıyorlarmış gibi! Şimdi VBScript ile bu teknikleri kullanarak bir sayfa yazalım. Hem de VBScript' te biraz daha yakınlaşalım:
<% @LANGUAGE=VBScript %>
<html>
<head>
<title>Merhaba VBScript</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>
<center>
<%
' Yazı boyutumuzu belirlediğimiz bir değişken tanımlayalım
Dim fontBoyut
%>
<%
' Yazı boyutumuzu 1'den 7' ye kadar değiştirelim
For fontBoyut = 1 to 7
%>
<font size = <%= fontBoyut%> >
VBScript' e Merhaba <br>
<% next %>
</center>
<h4> Bugün <%= WeekdayName(Weekday(Date)) %>, <%= Date %>.
Şu anda Server' a saat: <%= Time %>.
<p>
</h4>
</body>
</html>
Bu sayfayı vbsmerhaba2.asp adı ile kaydedin (VBScrtipt' e daha önce merhaba demiştik. Bu ikincisi). Şimdi sayfanın içindeki kodları inceleyelim...
Sayfamızın başında, bu sayfayı VBScript ile yazacağımızı belirttik. Daha sonra herzamanki HTML kodlarımızı yazdık. Daha sonra bir değişken tanımladık. Bundan sonra değişkenlerin bizim hayatımızda yeri çok büyük olacak :). Açıklama satırında da neler yaptığımızı anlatmaya çalıştık. Kısa ve öz. Daha sonra yazı boyutumuzun 1'den 7' ye kadar değişmesini istediğimizi söyledik.
Bu font boyutlarının sayfada uygulanabilmesi için font özelliklerini belirttiğimiz HTML etiketi olan <font=""> etiketine tanımladığımız değişkeni yazdık. Böylece font boyutumuzu değişkenimiz belirleyecek: <font size= <%= fontBoyut %> > dedik. <%= bu ifade ASP' de Response.Write metodunun kısaltılmış halidir. Yani <%= bu işareti yazdığımızda, içine değişkeni yazmamız gerekiyor tabii, bu değişkeni al sayfaya yaz demiş oluyoruz. Böylece değişkenimiz VBScript'e Merhaba yazısını sayfaya 1' den 7' ye kadar büyüterek yazdı. Bunları sayfada sıralamasını sağlamak için de <% next %> döngüsünü yazdık. Daha önce de gördüğüm tarih işlemini yazdık. Ama bu defa biraz farklı olarak. Dikkat ederseniz ASP ve VBScript kodlarını Yeşil renk ile yazıyorum. Böylece diğerlerinden ayırmamızın daha kolay olacağı kanısındayım. Değişkenler ve dögülerden ileride daha çok bahs edeceğiz. Çünkü onlarsız hiç bir işe yaramayız:)
Yazım Kuralları
VBScript komutlarının, değişken adlarının büyük harf, küçük harf olması önemli değildir. Ben genel de VBScript ile yazdığım kodların baş harflerini büyük yaparım. Dediğim gibi büyük harf, küçük harf hiç fark etmez:
For fontBoyut = 1 to 7
FOR FONTBOYUT = 1 TO 7
for fontboyut = 1 to 7
Olarak da yazabilirdik. Hiç bir şey değişmezdi. Ama tabii bazı istisnalar var. VBScript' in kendine has gelenekleri de vardır..
Eğer bir kod satırı çok uzun geliyorsa ve daha sonra anlaşılması mümkün olmayacak derecede uzuyorsa bu satırı alt çizgi ile ( _ ) aşağıdaki satırda devam ettirebiliriz:
<%
If degisken1 > And_
degisken < 10 Then
%>
Verdiğim örnek o kadar da uzun değil. Ama daha sonra, daha uzunlarını da yazmamız gerekecek.
Şimdi adından çok söz ettiğimiz Değişkenlere bir bakalım... Nedir? Ne değildir?
Temel Bilgiler: Değişkenler (DIM)
Bir programda değişken çok önemlidir.
Değişkenler, değişen değeri tutarlar. Mesela değişkenin adı Aylar ise, bu değişkenin değeri "Ocak, Şubar, Mart..." diye giden aylar olacaktır. Değişkenler, türlerine göre bir ya da daha fazla değer tutabilirler. Adı üstünde, değişken, her zaman değişir.. Bu değişikliği biz de yapabiliriz, program da yapabilir.
Değişkenlerin tanımlanması "DIM" komutu ile yapılır. DIM, dimension "boyutlandır" kelimesinin kısaltılmışıdır. Tanımlayacağımız değişken adının önüne Dim yazarız. Mesela:
<%
Dim Ay, Gun, Sayi, İsim
Ay = "Ocak"
Gun = "Pazartesi"
Sayi = 3
İsim = "Seren"
%>
Burada önce değişkenlerimizi tanımladık. Birden fazla da değişkenimiz olabilir. Bunun için değişkenlerin arasına virgül koyarak yaparız. Değişken isimlerimizde Türkçe karakter kullanmamaya özen göstermeliyiz. Değişken isimleri mutlaka harfle başlamalıdır, içinde noktalama işaretleri bulunamaz ve uzunluğu 255 karakteri geçemez. Zaten 255 karakterden uzun bir değişken de işimizi zorlaştırır diye düşünüyorum:)
Değişkenlerin isimlerini belirledikten sonra onlara bazı değerler atadık. Ay isimli değişkenimizin değeri "Ocak" oldu. Buna göre VBScript yorumlayıcısına, "VBScript yorumlayıcısı kardeş, Ay değişkeninin değeri nedir?" diye sorduğumuzda, "Bunu bilmeyecek ne var? Ocak'tır" diyecektir.
Şimdi şöyle bir değişken tanımladığımızı düşünelim, acaba ortaya nasıl bir değişken çıkar? :
<%
Dim Aylar(12), Gunler(31), İsimler(10)
%>
Bu yöntemle oluşturduğumuz kodlarla elde edilecek "kaplar," birden fazla değer tutabilir:
<%
Dim Aylar(12), Gunler(7), İsimler(10)
Aylar(5) = "Mayıs"
Gunler(2) = "Salı"
İsimler(8) = "Hasan"
%>
Bu durumda, içinde 12 ayrı değişken tutabilecek olan Aylar değişkeninin 5 numaralı değeri "Mayıs", 7 değer tutabilecek olan Gunler değişkeninin 2 numaralı değeri "Salı" ve 10 değer tutabilecek olan İsimler değişkeninin 8 numaralı değeri "Hasan" olacaktır. Böyle, birden fazla değer tutabilen değişkenlere Dizi Değişken veya Array denir.
Array Fonksiyonu
VBScript' in kullanıma hazır bir çok fonksiyounu vardır, bunlardan biri olan Array ile kolayca dizi değişken oluşturabiliriz.
Örneğin, Gunler(7) dizi-değişkenini isimler ile doldurmak istiyoruz:
<%
Dim İsimler = Array ("Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi", "Pazar")
%>
Böylece hem dizi değişkeni oluşturabiliriz, hem de değerlerini atayabiliriz. Buna göre daha sonra dizi değişkenin üyelerini sıra numarası ile çağırabiliriz:
<%= Gunler(5) %>
bize "Cumartesi" değerini verir. Neden mi? Çünkü dil tasarımcıları, sayı saymaya biz dünyalılar gibi 1' den değil de 0' dan başlarlar. Dolayısıyla Gunler dizi değişkeni Gunler(0)' dan başlayacaktır.
VBScript, bir değişkene alfanümerik (karakter, metin) olarak atadığımız değeri çift tırnak içine almanızı ister. Sayı olarak kullanacağımız değerleri ise tırnak içine almazsınız. Fakat işleri karıştıran nokta, VBScript açısından değişken türü diye bir şey olmamasıdır. Visual Basic, script dili haline getirilirken, değişken türü özelliği alınmayınca, ortaya işleri karıştıran ya da kolaylaştıran böyle bir durum çıkıyor. Bu sizin kafanızı karıştırmasın. Sadece işlemlerde dikkat etmemiz gereken bir kaç nokta var.
Bazı ASP programcıları, bu eksikliği gidermek için değişken adlarının önüne karakter dizileri için "str" harflerini koyarlar: strAy, strGunler, gibi.
Daha iyi anlamak için bir örnek yapalım. islem.asp adı ile kaydedelim:
<html>
<%
Dim Degisken(2), Toplam
Degisken(1) = "Seren"
Degisken(2) = "Sah"
Toplam = Degisken(1) + Degisken(2)
%>
<%= Toplam %>
</html>
Bu sayfayı çalıştırdığınızda sayfaya SerenSah yazıldı değil mi? (Arada boşluk olmayışına aldırmayın. Daha sonra göreceğiz.) Şimdi Değişken(1)' in değeri olarak "Seren" yerine tırnak içinde 3, Sah değeri yerine yine tırnak içinde 10 yazın. Şimdi sayfayı tekrar açalım. Sonuç? 310 değil mi? Şimdi tırnakları kaldırın 3 ve 10 ' un çevresinden. Sonuç? Doğru sonuç aldığınızdan eminim. Sayıların çevresinden tırnak işaretlerini kaldırınca VBScript bunların sayı olduğunu anladı ve işlemi ona göre yaptı.
Değişkenleri ve değişmeyenleri öğrendiysek şimdi İşlemcilere geçebiliriz :)
Temel Bilgiler : Sabitler (CONST)
Sabit Değerler
VBScript' de bir kere tanımladığımızda bir daha değişmesini istemediğimiz unusurlar olabilir. Bunlara değişken diyemeyiz. Öyle değil mi? O zaman onlara Sabit Değerler diyelim. Sabit değer, bütün site boyunca yani uygulama boyunca değişmeden kalır. Bu değerleri Const (constant, sabit kelimesinden türetilme) komuyutla yaparız:
Const Siteadi = "Webdersleri"
Const Slogan = "En iyi kaynak"
VBScript'in kullandığı tek tür değişkene variant denir. Variant, karakter dizini (String) de olabilir, sayı (number) ' da. Fakat bir Variant'ın 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 (Yanlış) olur. True' nun değeri -1, False' un değeri ise 0' dır.
Byte: 0 ile 255 arasında bir sayısal değeri olabilir.
Double: Yüzen noktalı değer denilen veri türüdür. Pozitif sayılar için 4.9E-324 ile 1.8E308 arasında, negatif sayılarda -4.9E-324 ile 1.8E308 arasında bir değer alabilir.
Date/Time: Önceden belirlenmiş biçimlerde tarih ve zaman bilgisi içerir.
Empty: Tanımlanmış ancak henüz değer atanmamış (boş) değişken türüdür.
Error: Programın hata mesajlarını ve hata değerlerini tutar.
Integer: Noktalık bölüm içermeyen tamsayı verilerdir, değeri
-32.768 ile +32.767 arasında olabilir.
Long: Noktalık bölüm içermeyen tamsayı verilerdir; değeri -2.147.483.648 ile 2.147.483.648 arasında olabilir.
Null: İçinde bulunmamak üzere tanımlanmış değişkenlerdir.
Object: Windows OLE nesnelerini tutmak üzere tanımlanmış değişkenlerdir.
Single: Yüzen noktalı değer denilen veri türüdür. Pozitif sayılar için 1.4E.45 ile 3.4E38 arasında, negatif sayılarda -1.4E-45 ile -3.4E38 arasında bir değer alabilir.
String: Alfanumerik veri tutan değişkenlerin değeridir.
Bunları ASP sayfalarımızda sık sık kullanacağız. Bu yüzden iyi tanımalıyız değil mi?
Temel Bilgiler : Operatörler
Bundan sonra işimizin daha çok matematiksel yanları oldğunu göreceksiniz. Bu bize hayatımızın her alanında matemetiğin önemini anlatır. Anlayana:)
VBscript' de Operatörler işlem yapmamızı sağlayan değerlerdir diyebiliriz. Onlarla işlem yaparız, sonuç alırız. Bu işlmeleri değişkenlerle yaparız gibi. Bakalım neymiş bu operatörler. Neye benzerler?:
Operatör:
İşlevi:
Sınıfı:
+
Toplama
Aritmetik
-
Çıkarma
*
Çarpma
/
Bölme
^
Üssünü alma
\
Tamsayı bölme
Mod
Modüler aritmetik
=
Bir değişkenin diğerine eşit olduğunu sınar
Karşılaştırma
<>
Bir değişkenin diğerine eşit olmadığını sınar
>and<
Bir değişkenin diğerinden büyük veya küçük olduğunu sınar (and kelimesi var)
>=and<=
Bir değişkenin diğerinden büyük veya eşit, veya küçük veya eşit olduğunu sınar (and kelimesi var)
Is
Bir ifadedeki iki referansın aynı Nesne'ye yapılıp yapılmadığını sınar
And
Bir veya daha fazla değişkeni test olarak karşılaştırır
Mantıksal
Or
Bir işlemin devamı için hangi koşulun oluşması gerektiğini sınar
Not
Bir ifadeyi negatif hale getirir
Xor
Sadece bir koşulun doğru olup olmadığını sınar
Eqv
İki değişkenin eşitliğini sınar
Imp
İki ifadede mantıksal implikasyon işlemi yapar
Bu işlemcileri daha çok göreceğiz. O yüzden iyi tanımlayız. Yeri geldiğinde bu işlemcilerin işlevlerini daha iyi anlayacağız..
VBScript ile yazacağımız ASP sayfalarında bu işlemcilerin beklediğimiz sonucu verebilmesi için kullanım sıraları önemlidir.
Bundan sonra işimizin daha çok matematiksel yanları oldğunu göreceksiniz. Bu bize hayatımızın her alanında matemetiğin önemini anlatır. Anlayana:)
VBscript' de Operatörler işlem yapmamızı sağlayan değerlerdir diyebiliriz. Onlarla işlem yaparız, sonuç alırız. Bu işlmeleri değişkenlerle yaparız gibi. Bakalım neymiş bu operatörler. Neye benzerler?:
Operatör:
İşlevi:
Sınıfı:
+
Toplama
Aritmetik
-
Çıkarma
*
Çarpma
/
Bölme
^
Üssünü alma
\
Tamsayı bölme
Mod
Modüler aritmetik
=
Bir değişkenin diğerine eşit olduğunu sınar
Karşılaştırma
<>
Bir değişkenin diğerine eşit olmadığını sınar
>and<
Bir değişkenin diğerinden büyük veya küçük olduğunu sınar (and kelimesi var)
>=and<=
Bir değişkenin diğerinden büyük veya eşit, veya küçük veya eşit olduğunu sınar (and kelimesi var)
Is
Bir ifadedeki iki referansın aynı Nesne'ye yapılıp yapılmadığını sınar
And
Bir veya daha fazla değişkeni test olarak karşılaştırır
Mantıksal
Or
Bir işlemin devamı için hangi koşulun oluşması gerektiğini sınar
Not
Bir ifadeyi negatif hale getirir
Xor
Sadece bir koşulun doğru olup olmadığını sınar
Eqv
İki değişkenin eşitliğini sınar
Imp
İki ifadede mantıksal implikasyon işlemi yapar
Bu işlemcileri daha çok göreceğiz. O yüzden iyi tanımlayız. Yeri geldiğinde bu işlemcilerin işlevlerini daha iyi anlayacağız..
VBScript ile yazacağımız ASP sayfalarında bu işlemcilerin beklediğimiz sonucu verebilmesi için kullanım sıraları önemlidir.
Temel Bilgiler : Kontrol Deyimleri (If..Else..)
If...Else
If İngilizce' de -eğer, -ise anlamına gelir. Yani biz burada If deyimini kısaca özetlemek istersek; If deyimini kullandığımzıda "eğer şu iş şöyle ise yap" demiş oluyoruz.. Else yani -başka deyimini kullandığımızda ise "şu iş şöyle değilse bunu yap" demiş oluyoruz.
Genel olarak yazım kuralı şöyledir:
If şart Then
şart doğru ise yapılacak işler
Else
Şart doğru değilse yapılacak işler
End If
End If ile If deyimimizin bittiğini söylüyoruz..
Bir örnek yapalım, If ... Else deyimimizi daha yakından tanıyalım.
Örnek olarak önce kafamızda ne yapmak istediğimizi tasarlayalım. Sayfamız eğer saat 12'den önce ise sayfaya Günaydın yazdırsın, saat 12 ' den sonra ise "Tünaydın yazdırsın.. Ama bir de şu var ki, saat 18' den sonra ise sayfaya İyi Akşamlar yazdırmamız lazım. Bunun için ne yaparız? Önce örneğimizi yapalım, daha sonra bu soruya cevap verelim. Bu sayfayı ifelse.asp adı ile kaydedin.
<html>
<head>
<title> If ve Else deyimi kullanımı</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>
<h2>
<center>
<%
If Hour(Now) < 12 Then
Response.Write "Günaydın"
ElseIf Hour(Now) >= 18 Then
Response.Write "İyi Akşamlar"
Else
Response.Write "Tünaydın"
End If
Response.Write "<br>"
Response.Write "<br> "
Response.Write "Sitemize Hoşgeldiniz.."
%>
</center>
</h2>
</body>
</html>
Şimdi sayfayı açabilirsiniz. Sizin o andaki saat durumunuza göre sayfa Sabah 12' den önce ise Günaydın, 12 den büyük, 18' den küçükse Tünaydın diyecektir.Eğer saat 18' den büyükse İyi Akşamlar yazısını ekranda göreceğiz.
Buradaki kodları daha ayrıntılı ele aldığımızda; If deyiminin -eğer -ise anlamlarına geldiğini söylemiştik. If deyiminin karşısında Hour(Now) yani -şimdiki zaman- deyimini görüyoruz. Hour(Now) deyimi bize o andaki zamanı verir. Bir de küçüktür ( < ) işareti ve 12 sayısı görüyoruz.
Şu cümlede:
If Hour(Now) < 12 Then
"Eğer şimdiki zaman 12' den küçükse" demiş oluyoruz.
Bir alt satırda da daha öğrenmediğimiz Response nesnesinin .Write metodunu kullanıyoruz. (Nesneleri öğrenirken göreceğiz.)
Böylece cümle tamamlanıyor ve: "Eğer şimdiki zaman 12' den küçükse sayfaya Günaydın yazdır" demiş oluyoruz...
Bir alt satıra daha baktığımızda ise daha önce sözünü etmediğimiz ElseIf deyimini görüyoruz. Hatırlarsanız kodları yazmaya başlamadan önce "eğer saat 18' den büyükse bize İyi Akşamlar demeli" demiştik. If ile ilk şartımızı belirlediğimizi Else ile o şart gerçekleşmezse eğer yapılacak işi söylediğimizi belirtmiştik. ElseIf deyimi yeni bir If deyimi gibidir. Yazdığımız örneğe bakarak da bunu görebiliriz. ElseIf deyimini birden fazla kullanabiliriz..
Kodlamamızın en sonunda Else deyimi ile diğer iki şart gerçekleşmezse eğer yapılacak işleri yazıyoruz.
Ve If deyimimizi End If ile sonlandırıyoruz..
Yeni öğrendiğimiz bu dilin kapıları yavaş yavaş açılmaya başlıyor.. Bizlere o kapıları açacak anahtarları öğrenmek kalıyor... :)
Temel Bilgiler: Kontrol Deyimleri(Select..Case..)
Select İngilizce' de -seçme, -seçim anlamlarına gelir. Case ise durumanlamına gelir. Select Case ile (bildiğiniz:) ) Durum Seç anlamına geliyor.
(burada niyetim inglizce kursu vermek değil, ama daha iyi öğrenebilmek için budeyimlerin anlamlarını bilsek daha iyi olur düşüncesindeyim!)
Select Case' in kullanımını şöyledir:
Durum Seç (Durumların listesi ve bunları belirten bir değişken)
Durum1 : Yapılacak İşler
Durum2 : Yapılacak İşler
Durum3 : Yapılacak İşler
Durum4 : Yapılacak İşler
Seçmeyi Bitir
Burada durum seç dediğimiz için, VBScript verdiğimiz durum listesine veyadeğişkene bakacaktır. Bu değişkenin her bir değerini bir "durum"sayacak ve ona hangisi uyuyorsa ona göre hareket edecektir.
Konuya daha derinlemesine bakarsak, Durum Seç ( yani Select Case) deyimininyanına bir durum yazarız ya da durumu belirten bir değişken yazarız. Daha sonrabu durum için yapılacak işleri listeleriz. Bu kadar basit...
Yine bir örnek yapalım ve durum seçme olayına daha yakından bakalım. Bu sayfayıdurumsec.asp adı ile kaydedin:
<html>
<head>
<title> Durum Seçme </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>
<h2>
<center>
<%
Select Case Hour(Now)
Case 0,1,2,3,4,5,6,7,8,9,10,11
Response.Write "Günaydın"
Case 12,13,14,15,16,17
Response.Write "Tünaydın"
Case Else
Response.Write "İyi Akşamlar"
End Select
Response.Write "<br>"
Response.Write "Sitemize Hoşgeldiniz"
%>
</center>
</h2>
</body>
</html>
Bu sayfada, daha önce gördüğümüz Şimdiki Saat anlamına gelen Hour(Now)fonksiyonunu görüyoruz. Daha öncede söylediğimiz gibi Hour(Now) VBScript'inhazır fonksiyonlarındandır. Biz burada durum olarak Şimdiki Saat seçeneğinikullandık. İlk seçimimizde saat 0,1,2,3,4,5,6,7,8,9,10,11 ise sayfaya"Günaydın" yazdır dedik. İkinci seçimimizde ise 12' den 17' ye kadarolan sayıları yazdık ve saat bunlardan biri ise sayfaya "Tünaydın"yazdır dedik. Case Else ile diğer seçimler olmazsa eğer sayfaya "İyiakşamlar" yazdır demiş olduk. End Select ile de seçme işlemini bitirdik.
Böylece Select Case yani Durum seçme olayını da öğrendik..
Küçük bir hatırlatma, bu ve bunun gibi örnekleri ne kadar çok yazarsanız okadar çok akılda kalıcı olurlar..
Temel Bilgiler : Mantıksal Operatörler
(NOT, OR, AND)
Şimdi Mantıksal Operatörler' den NOT, OR, AND' i öğreneceğiz. Bu üçünün farklı işlevleri var. Program akşını kontrol etmemize yararlar.. Çok akıllıdırlar!
NOT
' Not ' olumsuzluk anlamına gelir. Program akışını denetlerken bunu kullandığımızda ise olumsuzlukları ele alırız. Genel kullanımı şöyledir:
If Not a=3 Then
.....
End If
Burada Not deyimini program akışını kontrol eden If deyimi ile kullandık.
Demek istediğimiz, "eğer a ' nın değeri 3 değilse şu işi yap".
Not ile program akışı denetlerken, olumsuzlukları hesaplıyoruz.
OR
Or ise program akışı denetiminde şartları birleştirmeye yarıyor. Bir örnek vermek gerekirse:
If a=5 OR a=3 Then
.....
End If
Burada demek istediğimiz; a' nın değeri 5 ve 3 ise işlemi yap. Yani burada Or program akış denetimindeki şartları birleştirmeye yarıyor. İkisinin de gerçekleşmesi gerekli değil. Sadece 5 olsa da program akışa devam edecektir.
AND
And' de Or gibi şartları birleştirmeye yarıyor. Ama şartlardan mutlaka ikisinin de gerçekleşmesi gerekiyor. Mesela:
If a=5 And b=3 Then
......
End If
Yine burada demek istediğimiz; eğer a' nın değeri 5 ise ve b' nin değeri 3 ise işlemi yap. Şartlardan ikisininde mutlaka gerçekleşmesi gerekiyor. Yoksa program çalışmıyor.
Burada Mantıksal Operatörler' den Not, Or ve And' i gördük.
Bunlar program akışını denelerken bize yardımcı olurlar. İleride Veritabanı uygulamalarında da bunları sık sık kullanacağız...
Temel Bilgiler : Döngüler (For..Next)
Döngüler
ASP sayfalarımızda önceki derslerde öğrendiğimiz If..Else gibi sınama elemanları nasıl gerekliyse döngüler de o kadar gereklidir.
Döngü adı üzerinde dönen bir değeri temsil eder. Değeri durdurmazsak eğer sonsuza kadar döner ve buna Endless Loop (Sonsuz Döngü) denir. Şimdiki konumuz For..Next döngüsü.
Programın bir işi belirli kere yapmasını istiyorsak, ona yapacağı işi sayaç ile birlikte For döngüsü ile bildirmeliyiz:
For sayac = baslangıc To son Step adım
Yapılacak İşler
Next
Burada sayac değeri yerine istediğiniz bir adı yazabilirsiniz. baslangıc yerine sayacın başlamasını istediğiniz sayıyı, son yerine sayacın durmasını istediğiniz sayıyı, adım yerine de sayacın kaçar kaçar artmasını istediğinizi yazabilirsiniz.Sondaki Next deyimi ise döngünün bir sonraki adıma geçmesini sağlar. Burada bir de Step kelimesi varsa, karşısındaki değer kadar arttırılır ve yapılacak işler tekrarlanır.
Bir örnek yapalım ve dögü olayına daha derinlemesine bakalım. Bu sayfasyı dongu1.asp adı ile kaydedin:
<html>
<head>
<title> ASP' de Döngüler </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>
<h2>
<center>
<%
Dim isimler
isimler = Array("Hasan" , "Ayşe" , "Emrah" , "Fatma" , "Barış", "Buse", "Selim")
For sayac = 0 to 6
Response.Write isimler(sayac)
Response.Write "br"
Next
%>
</center>
</h2>
</body>
</html>
Şimdi bu sayfanın kodlamasına daha yakından bakalım.
Bilindik HTML kodları ile başlıyor sayfamız. BODY bölümünden sonra asp kodlarımızı yazıyoruz.
isimler isimli değişkenimizi tanımlıyoruz. isimler = Array bölümünde ise bunun bir dizi değişken olduğunu görüyoruz. Yani içinde bir çok ismi, kelimeyi ya da sayıyı barındırabilecek. Biz burada 7 tane isim yazdık. Sonra da döngümüzü başlattık: For sayac = 0 to 6. İsimleri 0' dan 6' ya kadar olanı dedik. Burada sayac isimli bir sayacımız var. Bu bir değişken değil. O yüzde tanımlamadık. Kafanız karışmasın.. Alt satırda da bu 0' dan 6' ya kadar olan isimleri sayfaya yazdır dedik= " Response.Write". Next ile döngünün durmasını değil, devam etmesini istiyoruz.
For sayac = 0 to 6 deyiminde 6 yerinde 5 ya da 4 yazıp tekrar terar deneyin. 5 yazdığınızda 6 isim yazılacaktır sayfaya. Çünkü VBScript (bunu daha sonrada göreceğiz) saymaya 0' dan başlar. Buna şimdiden alışmamız gerektiğini düşünüyorum.
Burada For..Next döngüsünü öğrendik ve döngüler daha bitmedi..
Temel Bilgiler: Döngüler (Do..Loop)
Döngüler
Döngüler daha bitmedi demiştim.Şimdiki konumuz Do..Loop döngüsü.
Do İngilizce'de -yapmak anlamına gelir. Bizde burada Do yani şu işi yap! diyeceğiz.
Ama bu işi yaptırmanın iki yolu olabilir, bir dizi komutu, bir koşul doğru iken veya doğru oluncaya kadar kadar yaptırabiliriz.
Bir koşul doğru ikenbazı işlerin biteviye (yani bitmeden) yapılmasını istiyorsak Do ile birlikte While yöntemini kullanırız. Genel olarak yazım kuralı şöyledir:
Do While koşul
koşul doğru iken yapılacak işler
loop
Do While ' ın karşısına koşulu bir alt satıra da koşul doğru ise yani koşul gerçekleşebilecek durumda ise yapılacak işleri yazıyoruz. Loop ile yapılacak işleri tekrarlıyoruz.
Bir örnek yapalım ve Do While olayına daha yakından bakalım. Ama önce bu örneğimizin içeriği hakkında biraz bilgi vermek istiyorum. Örneğimizde bir isim olsun ve onu sayfaya 3 kez yazdırana kadar döngümüz dönmeye devam etsin. Bu sayfayı dongu2.asp adı ile kaydedin:
<html>
<head>
<title>ASP' de Döngüler </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>
<h2>
<%
Dim Donen, Seren, Esra, Gelen
Randomize
Seren = 0
Esra = 0
Gelen = 0
Do While Seren < 3
Gelen = Gelen +1
Donen = Int(Rnd *2) +1
If Donen = 1 Then
%>
<p> Esra! </p>
<%
Esra = Esra +1
Else
%>
<p> Seren </p>
<%
Seren = Seren +1
End If
Loop
%>
Sayfaya 3 kere Seren yazdırmamız için isimleri <%= Gelen %> kez döndürmemiz gerekti!
</h2>
</body>
</html>
Bu sefer uzunca bir kodlama yaptık. Kodları incelemeye geçmeden önce bu sayfayı kaydedin ve çalıştırın. Bir kaç kez sayfanın yenile düğmesine basın. Her seferinde isimler sayfaya farklı sayılarda yazılacaktır ve isimlerin altında 3 kez Seren yazılabilmesi için kaç kez dönülmesi gerektiği yazacaktır. Şimdi kodlalarımıza daha yakında bakalım. Çünkü bizi en çok ilgilendiren konu onlar.
Önce değişkenlerimizi tanımlıyoruz. 4 tane değişkenimiz var. Burada değişken adları önemli değil. Değişkenlere istediğiniz ismi verebilirsiniz (cicek, bocek vs.). Ama türkçe karakter kullanmamaya dikkat edin! Değişkenler tanımlandı.. O da ne? Randomize diye bir şey yazmışız. Nedir bu Randomize?
Randomize = Tesadüfi Sayı nedir?
Randomize Tesadüfi Sayı anlamına gelir. Yani sayfamızın yenile düğmesine bastığımızda isimlerin hep değişik sayıda dönmesinin sebebi buydu. Randomize tek başına işe yaramaz. Randomize tesadüfi sayıyı üretir. Ama onu bize veren Rnd komutudur. Rdn komutunun bize verdiği sayılar tamsayı değildir! Bunları tam sayı yapmak için Int komutunu kullanırız.
Randomize ' nin ne olduğunu öğrendikten sonra kodları incelemeye devam edelim.
Randomize satırının altında Do While döngümüzü görüyoruz. Do While Seren < 3 demişiz. Yani Seren değişkeni sayfada 3' ten küçükse işlem gerçekleşmiş olacak. 3 ' ten büyük olmayacak. İşlemcileri hatırlayın!
Şu satıra bakalım:
Donen = Int(Rnd *2) +1
Donen değişkenimizin karşına Int(Rnd... yazmışız.Yani Randomize ile gelen sayıyı Rnd ile göster bunu Int ile tamsayıya çevir demiş oluyoruz.
Bir If deyimimiz var. Bu olayların akışını düzene sokmak için gerekli.
Sayfaya Esra yazdırdıktan sonra Esra = Esra +1 komutu ile bir arttırıyoruz. Daha sonra da Seren isimli değişkenimizi 1 arttırıyoruz. End If ile If deyimini sonlandırırken, Loop ile sayfaya 3 kez Seren yazılana dek döngümüzü döndürmeye devam ediyoruz. Kaç kez döndüğünü bize söylemesi için Gelen isimli değişkeni sayfaya yazdırıyoruz: <%= Gelen %>.
Burada Do While..Loop döngüsünü öğrendik. Dögüler ileride çok işimize yaracaklar. Gerçek hayatta bize arkadaş olmayacaklar, ama web uygulamalarımızda önemli bir yer tutacaklar. Bizden söylemesi.
Temel Bilgiler: Hazır Fonksiyonlar
Konumuz Fonksiyonlar.. VBScript'in bizim için hazırladığı Hazır Fonksiyonlardan söz edeceğiz..
Bir önceki dersimizde sözünü ettiğimiz Int() ve Rnd() fonksiyonlarını hatırlayın. Rnd() tesadüfi bir sayı üretir, Int() ise o sayıyı tam sayıya çevirir demiştik.
VBScript' te kullanılmaya hazır bir çok fonksiyon vardır. Bunlardan kısaca söz edelim:
Tarih ve Saat
Tarih ve zaman bilgisini bize verir:
Date: Bugünün tarihini verir.
Time: O andaki saati verir.
Now: O andaki tarih ve saati birlikte verir.
Daha önceki derslerimizdeki örneklerden de hatırlarsınız bu fonksiyonları.
VBScript'in bunlara ek olarak haftanın gününü bize söyleyen Weekday, haftanın gününün adını söyleyen WeekdayName ve ay adını bize söyleyen Montname fonksiyonları da vardır.
Örneğin:
<%= Weekdayname(WeekdayDate))%> bize o günün adını verir. Mesela o gün Pazar ise Pazar değerini verir.
Karakter Dizisi Düzenlemeye Yarayan Fonksiyonlar
Karakter dizisi veya String, VBScript için "Bugün gün güzel bir gün" bir string'dir. Web sitemizi ziyaret eden ve eğer varsa formalarımıza yazacağı ve gönder düğmesine basarak server'a göndereceği bilgiler de String' dir. İleri dersler göreceğiz, formdan gelen bilgileri düzenleme ihtiyacı hissettiğimizi. Bunun için VBScript' in karakter dizisi düzenleme fonksiyonları kullanacağız. Peki nedir bu fonksiyonlar. Şöyle bir bakalım:
InStr: Uzun bir String'in içinde vereceğimiz daha kısa bir String'in bulunup bulunmadığını arar, bulursa bu kısa string'in başlama noktasının değerini verir.
Len: Bir String'in uzunluğunu belirler. Mesela, Soz isimli bir değişkenimiz var, bunun değeri de "Neşeli ol ki genç kalasın" olsun. Uzunluğunu şöyle belirleyebiliriz:
Uzunluk = Len(Soz)
Uzunluk değişkeninin değeri sizce kaç olur? Cevap 25
UCase: Vereceğiniz bir String'in bütün harflerini büyük harfe çevirir. Biraz önceki Soz değişkenimize bunu uygularsak:
Yeni = UCase(Soz)
Yeni ' nin değeri: NEŞELİ OL Kİ GENÇ KALASIN olur...
LCase: Vereceğiniz bir String'in bütün harflerini küçük harfe çevirir. Yine Soz isimli değişkenimize bunu uyguladığımızda:
Yeni = LCase(Soz)
Yeni'nin değeri bu sefer: neşeli ol ki genç kalasın olacaktır.
LTrim, RTrim, Trim: Verdiğiniz String'in (sırasıyla) hem başındaki hem de sonundaki boşlukları temizler. Böylece gereksiz boşluklar ortadan kalkmış olur.
Space: İçinde vereceğiniz sayı kadar boşluk olan bir String oluşturur. Mesela:
Bosluk = Space(20)
Bosluk değişkeninin değeri 20 boşluk olacaktır.
String: İstediğiniz sayıda ve istediğiniz karakterde bir String oluşturur.
Yeni = String(3, "?")
Yeni'nin değeri, 3 tane ??? olacaktır.
Left, Right: Bir String'in içinde soldan (baştan) veya sağdan (sondan) verdiğimiz sayı kadar olan karakterleri verir. Mesela Soz değişkenimizin içindeki cümleyi kullanırsak:
Soldan = Left(Soz, 6)
Soldan değişkeninin değeri "Neşeli" olacaktır. Çünkü Neşeli Soz değişkeninin ilk altı harfinden oluşuyor.
Mid: Bir String'in içinde başlangıç noktasını ve karakter olarak boyunu verdiğimiz alanda yer alan String'i verir. Örneğin:
Ortadan = Mid(Soz, 1,6)
Ortadan değişkenimizin değeri Neşeli olacaktır. Çünkü Mid birinci harften itibaren 6 harf ' i sayfaya yazdırıyor. Neden? Biz öyle istedikte ondan.. Siz de istediğiniz bir sayıyı yazarak bu örneği deneyebilirsiniz..
Bu hazır fonksiyonlar ileride ASP sayfalarımızı yazarken çok işimize yarayacaklar.. Bu yüzden onları iyi tanımalı ve onlarla iyi geçinmelisiniz :)
İlk dersimiz bu kadar arkadaşlar Asp yi 4 yada 5 derste bitirmeyi Düşünüyorum 2. dersi en kısa zamanda ekleyeceğim...
Başarılar...