Asp Ders Notları
 

ASP NEDİR?

ASP, Server-Side Tabanlı bir dildir. Yani Sunucu tarafında yorumlanır. Ve bu sayede kimse kaynak kodlarınıza ulaşamaz...

Bu şöyle oluyor: Siz URL hanesine adresi girdiğinizde, bana falanca dosyayı bul, çağır ve yorumla diye bir istemde bulunuyorsunuz. (Bu durumda siz Client-Side yani istemci oluyorsunuz. ) Serverda (Sunucu ) kendisinden icra etmesini istediğiniz dosyayı arar bulur ve eğer bulursa, bu dosyayı hemen "asp.dll" adlı bir programa iletir. asp.dllde aldığı bu dosyayı hemen yorumlamaz. Önce serverda bulunan, belki sizin de gözünüze çarpmıştır, "Global.asa" adlı dosyanın çalışıp çalışmadığına bakar.

Global.asa ne mi diyeceksiniz. Global.asada diğer asp dosyaları gibi aslında düz bir text dosyasıdır ama farkı şudur. ASP dosyalarının çalışma kurallarını belirler. Bu dosyayı sonra tekrar ele alacağız. Özellikle Counter ve Active User Konusunda...

Asp.dll önce gelen dosyada hangi script dilinin kullanıldığına bakar. Ve buna göre kendini hazırlar. Nereden mi anlar. Belki dikkatinizi çekmiştir. ASP veya Java dosyalarında. ScriptLanguage diye bir satır. İşte buradan anlar. Asp.dll sonra bu derlediği bilgileri, tamamen asp kodlarından ayrılmış, temiz bir halde browsera gönderir. Bizde böylece sadece HTML kodlarını görürüz. ASP yazmak için iki dil kullanabiliriz.

Visual Basic ve Java Script... Fakat şu anda dünyada en geçerli olanı Visual Basictir. İşin bir ilginç yanı da şudur. Normalde Netscape ASP Scriptini yorumlayamaz. Ama bizim kodlarımızda böyle bir korkumuz yoktur. Çünkü niye. Hatırlayın bakalım niye? Umarım çoğunuz püf noktasını anlamıştır. Çünkü "asp.dll" Browsera VB kodlarından tamamen arındırılmış, yorumlanmış, tertemiz bir HTML sayfası gönderir. Ve böylece bizim de acaba netscapei olanda çalışacak mı diye bir korkumuz kalmaz.

STATİK SAYFA NEDİR?
Statik sayfa onu oluşturan kişinin ( webmaster ) bu sayfanın içeriğini bitirdiği tamamladığı ve kullanıcıların bu sayfaya her uğradıklarında aynı içeriği gördüğü sayfalardır. İçeriklerinin değişmesi için yeniden tasarlanılmaları gereklidir. Bu zaman ve iş gücü kaybına yol açan bir etkendir.

DİNAMİK SAYFA NEDİR?
İçeriği tamamı ile önceden belirlenmiş bazı kriterlere bağlı olarak değişen sayfaları dinamik sayfalar olarak adlandırabiliriz. Bu değişiklik sayfanın aldığı bazı girdilere göre olabilir.

ASP SAYFALARININ ÇALIŞMA İLKESİ


Şimdi, ilk ASPmizi çalıştırdığımıza göre, biraz teknikten söz edebiliriz. HTMLin ziyaretçinin bilgisayarında çalıştığını biliyorsunuz; istemci Browser, sizin URL hanesine adını yazdığınız HTML dosyasını yine adresteki sunucu Web Serverdan ister. Web Server da bu dosyayı bulur ve içinde kayıtlı resim ve diğer unsurlarla birlikte istek sahibine gönderir. Fakat kimi zaman Servera bize sadece bir dosyayı göndermesini değil, fakat bu dosyanın içinde kayıtlı komutlar varsa onları icra etmesini de bildirebiliriz. Bunu yapmanın bir yolu CGI programlarıdır. Bir diğer yolu ise ASPdir. Web Server, kendisinden bir ASP belgesi talep edildiğinde, kendi kendine "Dur bakalım! ASP istendiği zaman hemen alıp göndermek yok, önce bunu ASP.DLL programına gönderelim.. Ondan sonra işimize devam ederiz!" der.

ASP.DLL, kendisine bir .asp dosyasının geldiğini görünce, hemen ASPlerin Anayasası olan global.asanin çalışıp çalışmadığına bakar. global.asa, tıpkı diğer ASP dosyaları gibi bir düz yazı dosyasıdır ve ASP programlarının çalışma koşullarını düzenleyen kuralları içerir. (Bu dosyayı sırası gelince ele alacağız. ) Yukarıdaki örnekte gördüğümüz gibi ASP dosyası hem HTML kodları içerir, hem de içinde bir Script diliyle yazılmış kodlar vardır. ASPye "program" özelliği kazandıran bu Script dili ile yazılmış kodlardır. ASP.DLL, önce gelen .asp dosyasında hangi Script dilinin kullanıldığına bakar ve bunun için gerekli ortamı oluşturur; yani bu Script dilini yorumlayacak programı çalıştırır; bu program Scripti yorumlar ve icra edilecek komutları icra eder; ASP.DLL, icra edilen komutlar, işletim sisteminin yardımını istiyorsa (örneğin bir veritabanından veri çekmek gibi, veya dosya sistemine bir dosya açtırmak, yazdırmak, sildirmek gibi ) bu yardımın edinilmesini de sağlar. Bütün bu işlerin sonunda sizin yazdığınız HTML kodlarına ek yapmak (örneğin bir tablonun içini, çekilen verilerle doldurmak veya dosya sisteminden edinilen bir dosyanın içeriğini sayfaya aktarmak gibi ) gerekiyorsa bu ekleri ASP.DLL yapar.
ASP.DLL, kendisine sevk edilen dosyayı satır satır okur ve önce dosyadaki ASP kodlarının gerektirdiği HTML değerlerini bulur; yani önce ASP icra edilir, gereği yerine getirilir. Sonra HTML bölümleri ile birleştirilip sonuçta sunucuya saf ve temiz bir HTML sayfası gönderilir. Bu sayfanın içinde bir satır bile ASP kodu bulunmaz. Eğer sayfanıza ziyaretçinin Browserında çalışması amacıyla Javascript veya VBScript kodları koydu iseniz, elbette bu kodlar HTMLin parçası olarak ziyaretçiye gidecektir. Fakat giden sayfada artık ASPye ilişkin hiç bir şey kalmamış olacaktır.
KİŞİSEL WEB SERVER KURULUMU (PWS , IIS )


ASPnin Dili

ASP, bir teknolojidir. Kendi başına bir yazım kuralı yoktur. ASP tekniğini kullanabilmek için, ASP sayfasının talep edilmesi halinde ziyaretçiye gönderilmeden önce ASP.DLLye teslim edilmesi bu teknolojinin kullanılabilmesi için hemen hemen tek şarttır. Bunu, dosya uzantısını .asp yaparak sağlarız.
ASP.DLL ise, dünyada mevcut bütün Script dilleri ile verilecek komutları kabul edebilir. Sadece ASP.DLLe sayfadaki kodların hangi dilde olduğunu söylemeniz gerekir. Bunu, ASP sayfasının birinci satırında yaparız. Örneğin ASPye VBScript dilini kullanmasını belirtmek için bu satırı şöyle yazarız:
<% @Language=VBScript %>
ASP sayfalarında genellikle VBScript, JavaScript ve JScript kullanılır. Ancak örneğin Perl dilinden türetilen PerlScript, PHPden türetilen PHPScript de giderek ilgi çeken ASP dilleri arasına giriyor.
Bir ASP sayfası içinde farklı Script dilleri kullanılabilir.
Biz bu kitapçıkta örneklerimizi VBScript diliyle yazacağız.

YAZILIM KURALLARI

VBScript komutları, anahtar kelimeleri ve değişken adlarının büyük harf-küçük harf olması önemli değildir. Yani yukarıdaki ifadelerden birini şu biçimlerden birinde yazabilirdik; kodumuz yine de çalışırdı:
For fontBoyut = 1 To 7
FOR FONTBOYUT = 1 TO 7
for fontboyut = 1 to 7
Fakat... Bu demek değildir ki, VBScript ile kodlamanın kendi gelenekleri yok! VBScriptçiler genellikle komutların birinci harfini büyük yaparlar: For gibi. Değişken adlarında ise kendinize anlamlı gelen bir biçim tutturabilir ve öyle devam edebilirsiniz.
Eğer bir kod satırı çok uzun geliyor ve daha sonra anlaşılması imkansız derecede uzuyorsa, bu satırı alt çizgi (_ ) ile aşağı satırda devam ettirebilirsiniz. Örnek:

Kod Alanı:

<%
If degisken1 > 1 And _
     değisken1 < 10 Then
%>



DEĞİŞKENLER

İyi programcılık değişkenlerin önceden beyan edilmesini gerektirir. Bunu DIM komutuyla yaparız. DIM, Dimension (boyutlandır ) kelimesinden kısaltılmıştır. Pek akıllıca görünmese de bu komut, bilgisayarın değişken yeri olarak bir bellek alanının boyutunu belirtmesini sağlar.
Değişkenlere verilecek ismimlerin anlaşılır olması programın okunulurluğunu kolaylaştırır. Ayrıca değişken tanımlamaları ile ilgili bazı kurallar mevcuttur. Bu kurallar aşağıda verilmiştir:
1- Değişken ismi bir harf ile başlamalıdır
Ad1,Ad2 şeklinde değişken tanımı yapılabilir fakat 1Ad veya 2Ad kullanımı yanlıştır.

2-Değişken isminde boşluk bulunamaz. Bunun yerine alt çizgi karakteri kullanılabilir.
Adi_Soyadi doğru bir kullanım fakat Adi Soyadi gibi arasında boşluk içeren değişken tanımı yapılamaz.

3-Değişkene verilecek isim Vbscript komutlarını içeremez
Dim bir değişken ismi olamaz.

4-Değişken ismi 255 karakterden fazlada olamaz.
Kod Alanı:

<%
DIM Gun, Ay, Ogrenci, Not
Gun = "Pazartesi"
Ay = "Ocak"
Ogrenci = "Necip"
Not = 5
%>

Bir ASP sayfasının birinci satırı olarak
<% OPTION EXPLICIT %>
yazarsanız VBScript DIM komutuyla belirlenmemiş değişken kullanmanıza izin vermez; kullanırsanız hata verir ve durur. Bu ifadenin işinize çok yarayacağı bir diğer nokta, kodda değişken adını yazarken hata yapmanızı önlemektir. VBScript sizin hata yaptığınızı bilemeyeceği için yanlış kelimeyi yeni bir değişken sayacaktır. Değer atamadığınız bu yeni değişkeni kullandığınız yerlerde ya programınız hata verir, ya da kendisine doğru görünen işlemler yapar, fakat beklediğiniz sonucu elde edemezsiniz. OPTION EXPLICIT, yanlış yazdığınız değişkeni yeni değişken sayarak önceden tanımlanmamış değişken kullandığınızı düşünerek, duracaktır.











DİZİ DEĞİŞKENLERİ
VBScriptin kullanılmaya hazır bir çok fonksiyonu vardır; bunlardan biri olan Array ile, kolayca dizi değişken oluşturabiliriz. Diyelim ki, Gunler(7 ) dizi-değişkenini gün adları ile doldurarak oluşturmak istiyoruz:
Kod Alanı:

<%
Dim Gunler = Array ("Pazartesi" , "Salı" , "Çarşamba" ,
"Perşembe" , "Cuma" , "Cumartesi", "Pazar" )
%>

ile hem dizi-değişkeni oluşturabiliriz; hem de değerlerini atayabiliriz. Bu suretle oluşturduğumuz dizi değişkenin üyelerine daha sonra sıra numaraları ile atıfta bulunabilirsiniz. Örneğin:
Kod Alanı:

<%=Gunler(6 )%>

bize Pazarı verir. Neden? Çünkü hayatlarının büyük bölümünü penceresiz ortamlarda geçiren kişiler olan dil asarımcıları, sayı saymaya biz normal insanlar gibi 1den değil 0dan başlarlar; dolayısıyla Gunler dizi-değişkeni Gunler(0 )dan başlar!
REDİM :

Bazen elinizde eleman sayısı değişen bir data girdisi olabilir bu gibi durumlarda kullanılacak dizinin boyutuda değişken olabilir. Programınızın herhangi bir yerinde kullanılan bir diziyi yeniden boyutlandırma ihtiyacı duyulursa Redim keyword ü kullanılabilir böylece programımızın çalışması esnasında dizimizi yeniden boyutlandırabiliriz. Ancak unutulamaması gereken bir nokta bir dizi yeniden boyutlandırıldığında içerdiği eski datalar dizi içerisinden atılıır. Bir dizi içerisinde bulunan eski veriler kullanılmak isteniyorsa prereserve keywordu kullanılabilir.
ÇOK BOYUTLU DİZİLER
Bazı uygulamalarda matris yapısında dizi tanımlamalarına ihtiyaç duyulabilir. Böyle durumlarda çok boyutlu dizi tanımları kullanılabilir. Çok boyutlu dizi tanımı kullanılacak dizinin boyutları verilmek süreti ile gerçekleştirilebilir.
Dim myarray(3,3 )
Şeklinde bir tanımlama 3 X 3 boyutlarında bir dizi oluşturur bu diziye atama yapılmak istenildiğinde ise:
Kod Alanı:

myarary(0,0 )="test"
myarary(0,1 )="deneme"
myarary(0,2 )="test2"
myarary(1,0 )="deneme2"
myarary(1,1 )="111-23-4"
myarary(1,2 )="Mustafa"
şeklinde atama yapılabilir




SABİT DEĞERLER

VBScriptte bir kere verdiğiniz değeri hiç değişmeyen unsurlar (değişken diyemezdik, değil mi? ) vardır. Sabit değer, bütün ASP sayfası boyunca (hatta isterseniz, bütün site, yani Uygulama boyunca ) değişmeden kalır. Bu değerleri Const (constant, sabit kelimesinden türetilme ) komutuyla belirtiriz:
Const DolarDeger = 560780
Const SirketinAdi = "Web Tasarım ve Site Onarım A.Ş."
Const Slogan = "Siteler ve Kırık Kalpler Onarılır"

VERİ TİPLERİ

1- Byte
1 Baytlık işaretsiz tamsayı tipidir. 0 ile 255 arasında değer alabilir.
2-Integer
2 Baytlık işaretli tamsayı tipidir. -32.768 ile 32.767 arasında değer alabilir.
3-Long
4 Baytlık işaretli tamsayı tipidir. -2.147.483.648 ile 2.147.483.647 arasında değer alabilir.
4-Long
4 Baytlık ondalık sayı tipidir. +- 3.402923 X 10 38 ile +- 1.401298 X 10-45 arasında değer alabilir.
5-Double
8 Byte lık ondalık sayı tipidir. +- 1.79769313486232 X 10308 ile +-4.94065645841247 X 10-324 arasında değer alabilir.
6-String
Karakter sınırı verilmezse 2 milyar karaktere kadar atama yapılabilen sayısal olmayan veri tipidir. Bu tip karakter sayısı +10 byte yer kaplar. String bir veri tipi oluşturmak için değişkene atanacak değer " " işaretleri içerisinde yer almalıdır.
Adi="Mehmet"
7-Date
8 byte yer kaplayan bu değişkene 1/1/100 ile 31/12/9999 arasındaki tarih ve 0:00:00 ile 23:59:59 arasındaki saat atmaları yapılabilir. Bu tipteki değişkenlere atama string veri tipinde olduğu gibi veya # # karakterleri arasında yapılabilir.
Dogum_tarihi=#19/08/1978#
8-Boolean
2 byte lık bir veri tipi olmasına rağmen sadece True veya False değerleri alabilir. Yani daha çok iki durumlu değişkenlerde kullanılır. Bu tipten tanımlanan değişkenlere direkt True veya False atanabileceği gibi sayısal değerlerde atanabilir.. Atanan sayı 0 ise False, değilse True kabul edilir.
Evli=True
Evli=1
VERİ TİPİ DEĞİŞTİRME İŞLEMLERİBazen program içerisinde atnımlanmış veya içeriğine bir değer atanmış bir tipdeki değeri başka bir tipe değiştirme ihtiyacı duyulabilir. Bir veri itpini bir değerden diğerine çevirmek için kullanılabilecek veri dönüşüm fonksiyonları aşağıda verilmiştir.
Ccur (ifade ) arantez içinde verilen ifadeyi Currency veri tipine dönüştürür.

Cdbl (ifade ) arantez içinde verilen ifadeyi Double veri tipine dönüştürür.

Cint (ifade ) arantez içinde verilen ifadeyi Integer veri tipine dönüştürür.

Clng (ifade ) arantez içinde verilen ifadeyi Long veri tipine dönüştürür.

CVar (ifade ) arantez içinde verilen ifadeyi Variant veri tipine dönüştürür.

CBool (ifade ) arantez içinde verilen ifadeyi Booolean veri tipine dönüştürür.

CByte (ifade ) arantez içinde verilen ifadeyi Byte veri tipine dönüştürür.

CDate (ifade ) arantez içinde verilen ifadeyi Date veri tipine dönüştürür.
CInt

Ne iş yapar: Herhangi tipteki geçerli bir ifadeyi integer alt tipine dönüştürür.
Söz dizimi: CInt(ifade )

Örnek:
Kod Alanı:

mystr = "12"
myint = CInt(mystr )/3 myint değişkeninin değeri : 4
CStr


Ne iş yapar: Herhangi tipteki geçerli bir ifadeyi integer alt tipine dönüştürür.
Söz dizimi: CStr(ifade )

Örnek:
Kod Alanı:

myint = 41
mystr = CStr(myint ) + " kere maşallah" mystr değeri : "41 kere maşallah"
CDate


Ne iş yapar: Herhangi tipteki geçerli bir ifadeyi integer alt tipine dönüştürür.
Söz dizimi: CDate(ifade )

Örnek:
Kod Alanı:

mystr = "Ekim 12, 1998" sunucu sistemin saat/tarihi İngilizce ise değişir.
mydate = CStr(mystr ) mydate değeri : 12.10.1998
VarType
<%
degisken_1 = 12
degisken_2 = "Ben sendeyim sen bendesin Rüveyda..."
degisken_3 = #08-12-2000#
response.write vartype(degisken_1 ) sayfaya 2 yazar
response.write vartype(degisken_2 ) sayfaya 8 yazar
response.write vartype(degisken_3 ) sayfaya 7 yazar
%>



TypeName
Pi=3
Tarih=#10/10/1998#
Test="Selam Millet"
Response.write TypeName (pi ) ‘Sayfaya byte yazar
Response.write TypeName (tarih ) ‘Sayfaya date yazar
Response.write TypeName (text ) ‘Sayfaya text yazar
TEST FONKSİYONLARI
VBScriptte kullandığımız bazı değişkenlerin o andaki durumu, programımızın akışını kontrolde kullanacağımız bilgiyi sağlayabilir. Sözgelimi bir değişkenin değeri boş ise, ziyaretçimizin formu tam olarak doldurmadığını düşünebiliriz. VBScript, bize değişkenlerin durumunu sınamamız için bazı özel fonksiyonlar sağlar. Bu özel fonksiyonlardan dönen değer True (doğru ) veya False (yanlış ) olur; doğru sonucun değeri -1, yanlış sonucun değeri ise 0dır:

IsArray     Bir değişkenin dizi-değişken (Array ) olup olmadığını sınar.
IsDate     Bir değişkenin değerinin tarihe (Date ) çevrilip çevrilemeyeceğini sınar.
IsEmpty     Bir değişkenin tanımlanıp değer atanmış olup olmadığını sınar.
IsNull     Bir değişkenin geçerli bir değer tutup tutmadığını sınar.
IsNumeric     Bir değişkenin sayı olarak işleme tabi tutup tutulamayacağını sınar
IsObject     Bir ifadenin geçerli bir ActiveX veya OLE nesnesine referansta bulunup bulunmadığını sınar.
TypeName     Bir değişkenin türünü belirtir.
VarType     Bir değişkenin türünü belirten sayıyı verir.

Şimdi ASP için gerekli VBScript bilgisi bu kadar değil tabiî. Ama bu, işe başlamamız için yeter. İlerde yeni VBScript komutları, veya fonksiyonları ile karşılaşırsak (ki size garanti ederim, karşılaşacağınızı! ) onları orada kısaca ele alırız. Ama yukarıdaki VBScript bilgisi, her zaman lazım!

OPERATÖRLER:

Bir programlama dilinde veya scriptini kullanarak artimetik ve lojik işlemleri yapmak için gerekli operatörler bulunur. Vbscripte de bazı işlemler operatörlerle yapılırken bazıları ise fonksiyonlarla yapılır.
=           Atama                X = 5
+           Toplama Print           20+5 25
-           Çıkarma Print           10-5 5
*           Çarpma Print                3*5 15
/           Bölme Print                9/2 4.5
          Tam Bölme Print           92 4
&           String Toplama Print      "Bayram" & "paşa" Bayrampaşa
Ù           Üst Print                4Ù2 16
Mod           Bölmede Kalan Print           5 Mod 2 1
And Ve Print                          5 And 17 21      
Or Veya Print                          7 Or 17 23                
Not Değil Print                     Not &H1 &HFFFE      

Tesadüfî Sayı
Bilgisayarın matematik işlemlerde, özellikle istatistik hesaplamalarla kullanılması tesadüfî (rastlantısal ) sayı üretmeyi gerekli kılmıştı. Fakat daha sonra bilgisayar oyunları bu işlemi adeta zorunla hale getirdi. Rastlantısal sayı, bir dizide tekrar etmesi belirli bir düzene tabi olmayan sayı demektir. Bilgisayar yokken, tesadüfî sayı tabloları matematikçiler tarafından uzun uğraşlarla üretilirdi.
VBScript, bu amaçla Visual Basicin Randomize ve Rnd komutlarını almıştır. Randomize, tesadüfî sayı üretme sürecini başlatır; Rnd da bu sayıyı size verir. Kodunuzda bir yerde Rnd kullanacaksınız, ondan önce bir yerlerde mutlaka Randomize komutunun yer alması gerekir. Bunun bir uygulaması şu olabilir:
<% OPTION EXPLICIT %>
<HTML>
<%
Dim TesadufiSayi
Randomize
TesadufiSayi = Rnd
%>
<%=TesadufiSayi%>
</HTML>
Tam Sayı Elde Etmek için: Int ve Round
Tamsayi = Int(KesirliSayi )

INCLUDE FILE

Bu seçeneğimiz asıl olarak, herhangi bir ASP dosyamızı başka bir ASP dosyamıza dahil etmeye yarar.
<!--#INCLUDE FILE="../../Menuler/SAGTARAF.asp"-->
<!--#INCLUDE FILE="../../Menuler/SOLTARAF.asp"-->

STRİNG İŞLEMLERİ

UCASE AND LCASE
Ucase bir string içerisnde yer alan tüm karakterleri büyük karakterlere çevirmek için kullanılan bir fonksiyondur. Bu işlemin tam tersini yani bir string içinde yer alan karakterlerin tamamını küçük harflere çevirmeye yarayan fonksiyon ise Lcase fonksiyonudur. Örnek vermek gerekirse "Selam Millet" string verisini içeren değişken Ucase fonksiyonuna sokulduğunda yani :


yazi="Selam Millet"
Ucase(yazi ) gibi bir işlemin sonucunda yazi değişkeni "SELAM MILLET" şekline dönüşür. Aynı değişken Lcase fonksiyonuna sokulduğunda ise sonuç "selam millet" olacaktır.
<% // Asp script bloğunun başladığını belirtir.
yazi="Selam Millet" // yazi değişkenine atama yapılıyor
response.write Ucase(yazi ) // değişkenin içeriği büyük harfe dönüştürdü ve ekrana yazıldı.
response.write Lcase(yazi ) // değişkenin içeriği küçük harfe dönüştürdü ve ekrana yazıldı.
%> // Script Bloğunun bitişi.

 
 
  Bugün 49 ziyaretçi (61 klik) buradaydı  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol