ASP NEDİR? Active Server Page
Active Server Page veya asp
adıyla bilinen,dinamik web sayfaları,aktif sunucu sayfaları
yapabilirsiniz.ASP sunucu taraflı bir scripting dilidir ve web üzerinde
kullanılır. Sunucu taraflı bir ortamda çalışmanın sebebi ise,bağlantı sağlandıktan
sonra karşılıklı etkileşim sağlanmasındır. Kullanıcıları tanıyabilir,onların
isteklerini alabilir,ziyaretçilere özel sayfalar oluşturabiliriz.
ASP sayfalarındaki
script’ler sunucuda işlenerek çıktı olarak, kullanıcı bilgisayarına
HTML kodu gönderilir.
ASP’nin sunucu taraflı olduğu
için ,ziyaretçinin bilgisayarındaki platformdan bağımsız çalışır. Ziyaretçi
hangi işletim sistemin kullanıyor olursa olsun ,ASP kodları çalışacaktır.Bir
kısa uygulama yaparak daha iyi anlayalım.
ASP kodları <% %>
tagları arasına yazılır. Sunucu bu tağlarla karşılaştığı zaman ASP kodu
olduğunu anlar.
ASP nasıl çalışır:
- Kullanıcı tarayıcısına istedigi adresi yazar.
(http://localhost/index.asp )
2. Tarayıcı bu isteği DNS aracılığı ile Web Server'a gönderir.
3. Web sunucusu bu adrese dahil dizinde bu sayfayı arar bulur ve Asp sayfasının içerisindeki kodları <% %> tag ları arasındaki kodları bulur ve ayırır .
4. Web sunucusu bu dosyayı ASP.DLL 'e gönderir.
5. Asp dosyası içerisindeki komutlar işlenir ve bir html sayfası oluşturulur.
6. html belgesi buradan tarayıcıya gönderilir
7. Bu kodlarda tarayıcı tarafından yorumlanarak görüntülenir.
ASP Kurulumu
Kendi bilgisayarında ASP
kodlarını dişardan server kurmadan çalıştıramazsınız.Kodları çalıştırmanız
için,Windows 98 ve 95 için, Microsoft's Personal Web Server (PWS)
veya günümüzde Internet Information Services (IIS) kendi
bilgisayarınıza kurmanız gerekir.
ISS nasıl kurulacağını
görüntülü dersten yararlanarak ögrenebilirsiniz.
ASP kodlarını, browserdan
“kaynak kodları” bakma kısmından göremezsiniz,sadece HTML içerisinde, ASP
sayfasının çıktısını görebilirsiniz. Bunun sebebi browsera sonuçlar
gönderilmeden önce,ASP script’leri serverda işlenir.
Asp Sözdizimi
ASP Sözdizimi’nin temel kuralı
ASP scriptleri <% %>
tagları arasına yazılır.HTML sayfalarında olduğu gibi, ASP sayfaları HTML
tagları içerir. ASP sayfaları ayrıca sunucu scriptleri içerir. ASP
scripting dilini kendiniz seçebilirsiniz. ASP default dizi Visual Basic’tir. Bu
sitedeki asp örnek kodları Visaul Basic ile yazılmıştır.
VBScript
ASP’de birçok scripting
dilleri kullanabilirisiz.Buna rağmen,default scripting dili VBScript’tir.
Yukardaki örnekte dökümanın body kısmına “ASP ile Tanışalım” yazılmıştır.
JavaScript
Asp kodlarını JavaScript ile
yazarken language kısmında belirtmeniz gerekir. VBScript ile yazarken
belirtmeseniz bile herhangi bir sorun çıkmaz.
Not: JavaScript ve VBScript kodlarınızı yazarken çok
dikkatli olmanız gerekir. Büyük küçük harf duyarlıdır.
Asp Değişkenleri
Bir dilde değişkenlerin
kullanım ve tanımlama şekli dilden dile farklılık göstermektedir. Vb
scriptde dolayısı ile ASP kodlarında değişkenleri tanımlamadan kullanmadan önce
tanımlama mecburiyeti programcının seçimine bırakılmıştır. Eğer ASP kodlarının
en başına, Option Explicit keyword’ü
kullanırsanız,kullandığınız bütün değişkenleri tanımlamanız gerekir.
Değişkenlere verilecek
isimlerin 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.
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.
Not:Değişkenleri isimlendirirken daha sonra baktığınızda
akılda kalabilecek ve anlamlı bir isim veriniz.
ASP Prosedürleri
VBScript'te programın akış
kontrolünde kullanacağınız bir diğer grup araç ise örneğin Javascript veya
Perl'de fonksiyon dediğimiz gruplandırılmış ve isimlendirilmiş işlem
kümeleridir. Bu kümeler programın bir yerinde topluca dururlar ve programın
başka bir yerinden isimleriyle çağrılırlar; veya bu kümelere isimleriyle
referans yapılır
VBScript'te bu kümelenmiş kod
gruplarına Prosedür (Süreç) denir.Ve 2 çeşit prosedür vardır. Bir sub
prosedür, diğeri ise functionlardır.
Sub Prosedürler
Bir program içerisinde bir
kod bloğu birden fazla yerde kullanıyorsak,bunu bir alt prosedür tanımlayarak
istenilen yerlerde kullanılmasını sağlayabiliriz. Böylece defalarca aynı
kodları yazmaktan kurtulmuş oluruz. Sub prosedürlere değer gönderebilirsiz.
Yukarıdaki kodlar serverda
işlendikten sonra ,response.write ile ekrana 150 sonucu yazlır.
Function (fonksiyon) Prosedürler
Subların kullanımına benzer
fakat birden fazla değer alabilir.Ve değer dönderebilir.Eğer programın herhangi
bir yerinde bir şeyler hesaplatıp,değer dön almak istorsanız,functionlarla
halledebilirsiniz.
Yukarıdaki functionla 2
tane sayı toplanıyor ve sonuç function üzerinden geri gönüyor ve toplam
değişkenine atanıyor. Response.write ile ekranda 20 sayısı yazılıyor.
ASP Nesneleri
Asp nesneleri bir çok iş için
kullanılır. Çok kullanışlı ve kodları daha kolay hale getirmişlerdir. Kullanıcı
veya server’ın bilgilerine ulaşabilirsiniz.Her nesne
olaylara,metotlara,özelliklere sahiptir.İlerleyen konularda bunlar güzel
örneklerle açıklanmıştır.
Tablo1
İsim:
|
Tanımlama
|
Response
|
Web uygulaması boyunca bütün bilgiler burada
tutulur.
|
Request
|
ASPError nesnesi, sayfadaki hataların kontrol
edilmesinde iyi bir yoldur.
|
Session
|
Request nesnesi,HTTP isteklerinin tutulduğu
nesnedir.bilgilere form ,cookie, ServerCertificate ‘lerden erişilebilir.
|
Server
|
Response nesnesi, server yanıtlarının
tutulduğu nesnedir.
|
Application
|
Bu nesne ile sunucu üzerinde özellik ve
metotlara ulaşmayı sağlar.
|
ASPError
|
O anki kullanıcı oturumunun bilgilerini saklamak ve
almak için Session nesnesi kullanılır.
|
RESPONSE
Response(cevap)
nesnesi Asp(Active Server Page) de sık kullanılan nesneler arasında yer alır.
Webserver'ın kullanıcıya(client) cevap vermesini sağlar. Response
nesnesinin bir çok özelliği,metotu ve sadece 1 tane koleksiyonu vardır.
Response
nesnesinin özellikleri,metotları ve koleksiyonları aşağıdaki tabloda
gösterilmiştir.
Özellikler
Özellikleri
|
Açıklama
|
Buffer
|
Buffer özelliği "TRUE" değerinde iken
sayfada, tüm işlemler bitinceye kadar
hiçbir ekran çıktısı vermez ve bunları tampo hafızada depolar.
|
CacheControl
|
Bu özellikle çıkışların bir proxy sunucuda
saklanmasına olanak sağlayan bir özelliktir
|
Charset(charset_name)
|
Sayfanın karakter tipini belirtmek için kullanılır.
|
ContentType
|
Sayfanın
tipini belirlemek amacıyla kullanılır.
|
Expires
|
Belirtilen
bir süre boyunca sayfanın tamponlanmasını sağlayan bir özelliktir.
|
ExpiresAbsolute
|
Sayfaların belirtilen bir tarihe kadar geçici
bellekte saklanmasını sağlar.
|
IsClientConnected
|
Sunucuya herhangi bir ziyaretçinin bağlı olup olmadığını
kontrol eder.
|
Pics(pics_label)
|
-
|
Status
|
-
|
Metotlar
Metotları
|
Açıklama
|
AddHeader(name,value)
|
Belirli bir değere HTML başlığı ekler.
|
AppendToLog string
|
Sunucu log dosyasına bir string ekler.
|
BinaryWrite(data_to_write)
|
Binary bir değer yazar.
|
Clean
|
Sunucudaki tampon hafızada bulunan bütün bilgileri
siler.
|
End
|
Sunucu
işlemlerini ve scriptin çalışmasını durdurulur ve o zamana kadar tompon
hafızada bulunan değerleri browser gönderir.
|
Flush
|
Bu metot ile tompon hafızadaki bütün bilgiler
browser gönderilir
|
Redirect(URL)
|
Sayfayı başka
bir sayfaya yönlendirmek için kullanılır.
|
Write(data_to_write)
|
Herhangi bir datayı ekrana yazdırmak için
kullanılır.
|
Koleksiyonlar
Koleksiyonu
|
Açıklama
|
Cookies
|
Kullanıcının bilgisayarlarında ufak dosyalar oluşturur
|
------------------------------bitiş-------------------------------------------------------
COOKİES
KOLEKSİYONU
Cokies(kurabiye
veya çerezler) Response nesnesinin bir koleksiyonudur. Kullanıcının
bilgisayarlarında ufak dosyalar oluşturur. Bu oluşturulan dosyalar sayesinde
kullanıcı tanınır ve ona özel işlemler yaptırılabilir. Cokies'ler sitelerde çok
yaygın olarak kullanılır. İşleri kolaylaştırır. Örneğin; kullanıcı
siteye
tekrar bağlandığında, cokies'lerin bulunduğu dizini kontrol ederek, kullanıcıyı
tanımaya çalışır.
Kullanımı:
Response.Cookies(ismi)[(anahtar)|.özelliği]=değeri
Değişken=Request.Cookies(ismi)[(anahtar)|.özelliği]”
|
Örnek:
<%
response.Cookies("isim")="hanife"
x=request.Cookies("isim")
response.write("isim="&
x)
%>
|
Örneğimizde
ilk önce isim adlı bir cokies
oluşturuyoruz. Response.Cookies ile cokies'nin değerini alır. Alırken
request(istek) nesnesini kullanarak cokies'yi bulunduğu dizinden alarak x
değişkenine alıyoruz. write metodu ile ekrana çıktı olarak isim değişkeninin
içeriğini gösteriyoruz.
Çıktı:
isim=hanife
Şimdi
ise oluşturduğumuz cokies'nin yaşam süresini belirleyelim.
Belirlediğimiz
tarihe kadar cokies kullanıcının bilgisayarında
bulunsun
ve daha sora silinsin.
Örnek:
<%
response.Cookies("isim")=hanife
response.Cookies("isim").Expires=#May
10,2007 01:00:00#
x=request.Cookies("isim")
response.write("isim="&
x)
%>
|
İsim
adlı cokies'miz mayıs 10 saat 1 kadar geçerlilik süresi vardır.
Cokies'lerin
anahtarlara sahip olduğunu söylemiştik. Aşağıdaki örnekte;
Kullanıcı
isminde bir cokies oluşturarak birden çok bilgiyi anahtarlama yöntemiyle
tutuyoruz ve ekrana yazdırıyoruz.
Örnek:
<%
response.Cookies("kullanici")("isim")="hanife"
response.Cookies("kullanici")("soyad")="doğanay"
response.Cookies("kullanici")("yas")="21"
isim=request.Cookies("kullanici")("isim")
soyad=request.Cookies("kullanici")("soyad")
yas=request.Cookies("kullanici")("yas")
response.write(isim)
response.write("<br>")
response.write(soyad)
response.write("<br>")
response.write("<br>")
response.write(yas)
%>
|
Çıktı:
hanife
doğanay
21
-------------------------bittti-----------------------------------------------------------------
metotları:’Sitede
olmayacak ben koyuyom anlamak için
CLEAR
METOTU
Sunucudaki
tampon hafızada bulunan bütün bilgileri siler. Eğer tampon
Hafıza
boş ise run-time error hatasına sebeb olur.
Kullanımı:
Response.clear
|
Aşağıdaki
örnekte Response nesnesinin buffer özelliğini true yapıyoruz.
Ve
böylece bütün sunucu scriptlerin işlevi bittikten sonra,browser'a cevap
gönderiyoruz.
Response.clear satırına gelindiği zaman,tompon hafızanın içeriği
siliniyor.
Sonraki satırlardaki bilgiler tompon hafızaya alınarak gösteriliyor.
Örnek:
<%
response.Buffer=true
%>
<html>
<body>
<p>merhaba:)Hoş geldin
siteye</p>
<p>Hayır hoşgeldin siteye demek istemiyooorummm:)</p>
<%
response.Clear
%>
<p>Umarım Sitemi
Beğenirsiniz:)</p>
</body>
</html>
|
Çıktı:
Umarım Sitemi Beğenirsiniz:)
--------------------------------------bitti---------------------------------------------------------------------
END METOTU
Sunucu
işlemlerini ve scriptin çalışmasını durdurulur ve o zamana kadar tompon
hafızada bulunan değerleri browser gönderir.
Kullanımı:
Response.end
|
Aşağıdaki
örnekte Response.end satırına gelindiğinde scriptin çalışması durdurulur ve
browser'a tompon hafızada olan bilgiler gönderilir.
Örnek:
<%
response.Buffer=true
%>
<html>
<body>
<p>Bir şeyler yazmak istiyorum?
düşünmeliyim </p>
<%
response.end
%>
<p>Bitti!Çok geçç daha fazla
yazamasın!</p>
</body>
</html>
|
Çıktı:
Bir şeyler yazmak istiyorum? düşünmeliyim
------------------------------------bitti-----------------------------------------------------------------
FLUSH METOTU
Bu
metot ile tompon hafızadaki bütün bilgiler browser gönderilir ve
Kodlar
işlemeye devam eder. Kodların sonunda gelindiğinde browser kodlar tekrar
gönderilir
biz fark edemeyiz çünkü çok hızlıdır. Flush metodu kullanılırken
response.buffer=true
yapılmalıdır. Aksi taktirde run-time error hatasına sebep olur.
Kullanımı:
Response.flush
|
Aşağıdaki
örnekte response.flush satırına geldiği zaman tampondaki bilgiler
Browser
gönderilir fakat kodlar işlenmeye devam edilir. bittiği zaman tampondaki bütün
bilgiler browser'a gider.
Örnek:
<%
Response.Buffer=true
%>
<html>
<body>
<p>evet response.flush gödügü
zaman yazımız gözükecekkk:) </p>
<%
Response.Flush
%>
<p>sayfanın tamamı işlendikten
sonra bütün tompondaki bilgiler browser gidecek</p>
</body>
</html>
|
----------------------bitti--------------------------------------------------------
REDİRECT METOTU
Bu
metot ile o anki asp sayfasının
çalışması durdurularak belirtilen başka URL adresindeki sayfayı browserımıza
getirir.
Kullanımı:
Response.redirect URL
|
Aşağıdaki
örnekte direk olarak URL adresine gider.
Örnek
<%
response.redirect("http://www.webhocam.com")
%>
|
ß-------------------------------------bitttiiiiiiiiiiiiiii------------------------------------------>
WRİTE METOTU
Asp
kodları içerisinde istediğimiz değişkeni veya yazıyı göstermemize olanak
sağlar. Eğer response.write kullanmak istemezseniz; <%= ... %> bu tağlar
arasından da çıktı alabilirsiniz.
Kullanımı:
Response.write değer
|
Örnek:
<%
dim mesaj
mesaj="merhaba Dünya"
response.write("Mesaj.....:"&mesaj&"<br><br>
")
response.write("....Yaşamak çook
güzel......")
%>
|
Çıktı:
Mesaj.....:merhaba Dünya
....Yaşamak çook güzel......
ß-------------------------------------------bittti----------------------------------------------------------------->
özellikler:
BUFFER ÖZELLİĞİ
Bu
özellik ile sayfanın yüklenme şeklini belirleyebiliriz. Buffer özelliğini
kodlarımızın en üstüne yazmamız gerekir. Response.buffer=true ise sayfamız
sunucudaki tampon belleğe yüklendikten sonra veya Flush,End metotları
kullanıldığı zaman browsera gönderilir. Eğer
false ise sayfamız tamponlanmadan browsera gönderilir.
Kullanımı:
Response.buffer=true veya false
|
Aşağıdaki
örnekte for döngüsü bitene kadar bütün
bilgiler tamponda tutulur. For döngüsü bittikten sonra browsera gönderilir.
Örnek 1
<%response.Buffer=true%>
<html>
<body>
<%
for i=1 to 500
response.write(hanife& "<br />")
next
%>
</body>
</html>
|
Örnek 2
<%
Response.Buffer=true
%>
<html>
<body>
<p>evet response.flush gödügü
zaman yazımız gözükecekkk:) </p>
<%
Response.Flush
%>
<p>sayfanın tamamı işlendikten
sonra bütün tompondaki bilgiler browser gidecek</p>
</body>
</html>
|
Örnek 3
<%
Response.Buffer=true
%>
<html>
<body>
<p>evet response.flush gödügü
zaman yazımız gözükecekkk:) </p>
<%
Response.Flush
%>
<p>sayfanın tamamı işlendikten
sonra bütün tompondaki bilgiler browser gidecek</p>
</body>
</html>
|
ß----------------------------bitti---------------------------------------------------------->
CACHECONTROL
ÖZELLİĞİ
Bu özellikle çıkışların bir proxy sunucuda
saklanmasına olanak sağlayan bir özelliktir. Default değeri proxy sunucunun
cache belleğine alınmaz.
Kullanımı:
response.CacheControl=public veya
private
|
public
değeri ile proxy serverın chache saklanmasına izin verilir.
Private
ise proxy serverın chache saklanmasına izin verilmez.
Örnek:
<%response.CacheControl="Public"%>
veya
<%response.CacheControl="Private"%>
|
----------------------------------------------------bitti--------------------------------------------------------------
EXPİRES ÖZELLİĞİ
Sunucu
sayfaları browsera gönderdiği zaman sayfalar ziyaretçinin geçici bir belleğinde
depolanır. Browser sayfa istenildiği zaman ilk önce,bellekte ara ve bulursa
görüntüler. Bu yöntem daha hızlıdır. Response.expires özelliğiyle sayfanın
ziyaretçinin geçici belleğinde tutulup tutulmamasını sağlayabiliriz. Eğer sayfaların ziyaretçinin geçici
belleğinde tutmak istersek,bunu kaç dakika tutulacağını kontrol edebiliriz.
Kullanımı:
response.Expires=sayı
|
Örnek 1
<%response.Expires=-1%>'geçiçi
bellekte tutulmaz
|
Örnek 2
<%response.Expires=2880%> '48
saat geçiçi bellekte tutulur.
|
ß-----------------------------------bitttiiiiiiiiiiiiiiiiiiiiiiiii------------------------------------------------------>
EXPİRESABSOLUTE
ÖZELLİĞİ
Bu
özellik ile sayfaların ziyaretçi geçici belleğinde hangi tarih ve saate kadar
kalacağını belirleyebiliyoruz.
Kullanımı:
response.ExpiresAbsolute
=[tarih][zaman]
|
Aşağıdaki
örnek ile kullanıcın geçici belleğinde 12 ocak 2007 saat 17:00 kadar tutulmasına izin veriyoruz.
Örnek
<%response.ExpiresAbsolute=#October
12,2007 17:00:00#%>
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
ISCLİENTCONNECTED ÖZELLİĞİ
Sunucuya
herhangi bir ziyaretçinin bağlı olup olmadığını kontrol ediyoruz.
Kullanımı:
response.IsClientConnected
|
Aşağıdaki
örnekte sunucuya kullanıcı bağlı ise çıktı olarak "hala bağlısınız"
yazısı değil ise "Kullanıcı bağlı değil!" yazısı yazar.
Örnek:
<%
If response.IsClientConnected=true
then
response.write("Hala bağlısınız!")
else
response.write("Kullanıcı bağlı değil!")
end if
%>
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
REQUEST NESNESİ
Browser
sunucudan sayfa istediği zaman bir request(istek) bulunur. ASP de Request
nesnesi kullanıcıdan bilgi almak için kullanılır.Request Nesnesi ençok web
formlarında kullanılır. Request nesnesinin özelliği,metotu ve koleksiyonları
aşağıda tanımlanmıştır.
Özellikler
Özellikleri
|
Açıklama
|
TotalBytes
|
Browser tarafından gönderilen bilginin toplam olarak
kaç byte olduğunu bulmak için kullanılır.
|
Metotlar
Metotları
|
Açıklama
|
BinaryRead
|
POST ile server a gönderilen bilgilerin alınması
için kullanılır. Form ve querystring metotlarından farklı olarak text dışında
veri gönderildiğinde bu metod bu verilerin okunması için kullanılır.
|
Koleksiyonlar
Koleksiyonu
|
Açıklama
|
Clientcertificate
|
Ziyaretçi sertifikasını yakalar.
|
Cookies(isim)
|
Cokies'nin değerini alır.
|
Form(isim)
|
Post metotu kullanılmış bir formdan bilgileri almak
için kullanılır.
|
QueryString(isim)
|
Query string içindeki değişken değerlerini yakalar.
|
ServerVariables(server_değişkeni)
|
Sunucu değişken değerlerini alır.
|
ß---------------------------bittti--------------------------------------------------------------à
Koleksiyonları:
CLİENTCERTİFİCATE
KOLEKSİYONUß---Bu Kısıma
gerek yooooK>
Kullanıcı
sertifikasını yakalar.
Kullanımı:
Request.clientcertificate
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
FORM ELEMANLARI
VE ASP’DE KULLANIMI
Form
web sayfasını ziyaret eden kullanıcıdan bilgi almak için kullanılır. Html
formları birçok kontrol elemanına sahiptir.Bunlardan bazıları checkbox’lar,
radio buttonları, menus’dur. Kullanıcılar genellikle,kontrolleri submit olmadan
önce,doldurarak veya düzelterek kendine özel bir form oluşturur.Form submit
olduktan sonra formdaki verileζr işlenir.
Kullanımı:
<FORM action="name" method="post/get">
‘kontrol elemanları
</FORM>
|
Action
kısmında formdaki bilgilerin hangi sayfaya gideceği belirtilir.
Örnek:
<FORM action="isle.asp"
method="post">
<P>
<LABEL for="firstname">İsim.......: </LABEL>
<INPUT type="text"
id="firstname"><BR>
<LABEL for="lastname">Soyisim: </LABEL>
<INPUT type="text"
id="lastname"><BR>
<LABEL for="email">Email....: </LABEL>
<INPUT type="text"
id="email"><BR>
<INPUT type="radio" name="sex"
value="Male">
Bay
<BR>
<INPUT type="radio" name="sex"
value="Female">
Bayan<BR>
<INPUT type="submit" value="Gönder">
<INPUT type="reset" value="Sil">
</P>
</FORM>
|
Yukarıdaki
örnekte form oluşturularak, submit butonuna basıldığı zaman isle.asp sayfasına formdaki değerler
gönderilmektedir.
GET VE POST
METOTU
Request
nesnesinin koleksiyonu olan response.querystring ve request.form koleksiyonları
ile formdan gelen get veya post olarak
gönderilen bilgileri alabiliriz.
Formumuz
method="post" olacak seçilmiş ise gelen bilgiler request.form ile
alınır. Method="get " ile ise request.querystring ile alınır.
Aralarındaki
farklar ise:
§ Get metodunda,
aktarabileceğimiz karakter sayısı sınırlıdır.Yaklaşık
4000 byte’tır.Ortalama bir form kullanımında yeterlidir.Post metodunda
istediğimiz kadar veriyi aktarabiliriz.
§ Get metodunda ,form
parametreleri adres çubuğundan görülür.(resim koyy). Bu istenmeyen bir durum
olabilir çünkü sql injection açığı olduğu zaman kullanıcı veritabanındaki
bilgilere ulaşabilir.Sitede her türlü değişikliği yapabilir.Post metodunda ise adres
çubuğunda herhangi bir şey gözükmez.
§ Get metodu, ASP içinde
request.querystring(“form alan ismi”) ile formdan gelen bilgiler alınır.Post
metodu ise request.form(“form alan ismi”)
bilgiler alınır.
ß--------------------------------bitti--------------------------------------------------------->
FORM ELEMANLARI
Kullanıcı ile etkileşimli olan kontrollere form elemanı
denir. Form elemanları name özelliğine sahiptir.Bunlardan en çok kullanılanlar aşağıda
anlatılmıştır.
TEXT
BOX
Kullanıcıdan tek satırlık bilgi almak için kullanılır.
Kullanımı:
<form>
İSİM:
<input type="text" name="ad">
<br>
Soyisim:
<input type="text" name="soyad">
</form>
|
Örnek:
<FORM action="isle.asp"
method="post">
<P>
<LABEL for="isim">İsim.......: </LABEL>
<INPUT type="text"
name=”ad” id="isim"><BR>
<LABEL for="soyad">Soyisim: </LABEL>
<INPUT type="text"
name=”soyad” id="soyad"><BR>
<LABEL for="email">Email....: </LABEL>
<INPUT type="text"
name=”email” id="email"><BR>
<INPUT type="submit" value="Gönder">
<INPUT type="reset" value="Sil">
</P>
</FORM>
|
Örnek:
ÇıktıJ
gelecek
Yukarıdaki
örnekte Gönder butonuna basıldığı zaman isle.asp sayfasına 3 değer
gider ad,soyad ve email.Aşağıdaki örnekte ise isle.asp sayfasında bu verileri
nasıl alabileceğimiz gösterilmiştir.
Örnek:
<body>
<%
ad=request.form("ad")
soyad=request.Form("soyad")
email=request.Form("email")
response.Write("Adınız..:"&ad)
%>
</body>
|
Ekranda
adınız yazacaktır.
TEXT
AREA
Daha içerikli bilgilerin alınmasını sağlayan form elemanıdır. Kullanımı
texbox ‘lara benzemektedir.
Kullanımı:
<form action="" method="get/post">
<textarea name="" cols="" rows=""></textarea>
</form>
|
RADYO
BUTONLARI
Değerleri önceden tanımlı form elemanlarıdır.Kullanıcının mutlaka
bir tercih belirtilmesi istenildiği zamanlarda kullanılır.Aynı isimli radyo
butonları arasında sadece bir tanesini seçebilir. Radyo butonları anket
uygulamaları güzel bir örnek olarak gösterilebilir.
Kullanımı:
<form action="" method="get/post">
<input name="" type="radio" value="" />
<input name="" type="radio" value="" />
</form>
|
.
CHECK
BOXES
Kullanıcının bir veya birden fazla seçenekte bulunması için
kullanılır.
Kullanımı:
<form action="" method="get">
<input name="" type="checkbox" value="" />
<input name="" type="checkbox" value="" />
</form>
|
Form
elemanları ile ilgili uygulamayı görmek
için uygulamaya tıklayınız.
ß------------------------------------------------BİTTİ----------------------------------------->
COOKİES
KOLEKSİYONU
Cokies'nin
değerini alır.
Kullanımı:
Request.cookies
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
FORM KOLEKSİYONU
Post
metotu kullanılmış bir formdan bilgileri almak için kullanılır. Eğer göndermek
istediğin veri 100kb üstünde ise request.form kullanılmaz.
Kullanımı:
Request.Form(element_name)[(index)|.Count]
|
Örnek:
Form sayfamız
<form action="kayit.asp"
method="post">
<p>isminiz: <input
name="isim"></p>
<p>Soyisminiz: <input
name="soyad"></p>
<p>En sevdigin hayvan:
<select name="hayvan">
<option></option>
<option>Kedi</option>
<option>Köpek</option>
<option>Yılan</option>
<option>fare</option>
</select>
</p>
<p><input
type="submit"></p>
</form>
kayit.asp sayfamız
merhaba,
<%=Request.Form("isim")%>.
En sevdiğiniz hayvan
<%=Request.Form("hayvan")%>.
|
Çıktı:
merhaba, hanife. En sevdiğiniz hayvan Kedi.
ß-------------------------------------------------------------------bitttttttttttii---------------->
QUERYSTRİNG
KOLEKSİYONU
Querystring
koleksiyonu ile adres çubuğundan başka sayfalara değişken veya değişkenlerim
taşınmasını sağlar. <A href> tagıyla veya response.redirect ile
yönlendirdiğimiz sayfaya istediğimiz değişken değerlerini taşıyabiliriz.
Sayfamızın adını yazdıktan sonra ? işareti ve sayfaya taşıyacağımız değişkenin
adını ve değerini belirtiriz.
Kullanımı:
Request.QueryString(değişken)[(değer)|.Count]
|
Örnekler:
Örnek1:
Bu sayfayla requestquery.asp veri gönderiyoruz.
<a href="requestquery.asp?id=hanife&id=doğanay">Gödermeye hazırmısın al asp'ye</a>
requestquery.asp
alınan veriler sıralanıyor.
<%
for i=1 to
request.QueryString("id").count
response.Write(request.QueryString("id")(i)&"<br>")
next
|
Çıktı
hanife
doğanay
Örnek2
Form
sayfamızı oluşturuyoruz. Dikkat etmemiz gereken form action kısmında get metotu
kullanılmalıdır.
<body>
<form action="query.asp"
method="get">
<p>
AD.........:
<input type="text" name="ad" />
</p>
<p>
<label>
SOYAD...:<input type="text" name="yas" />
</label>
</p>
<p>
<label>
<input type="submit" name="Submit"
value="Gönder" />
</label>
</p>
</form>
</body>
query.asp sayfamıza form da
doldurduğumuz alanlardaki bilgiler gelmektedir.
<%
response.Write("merhaba
"&request.QueryString("ad")&"<br>")
response.write("yaşınız"&request.QueryString("yas"))
%>
|
Çıktı:
merhaba X
yasinizX1
yasinizX1
ß-------------------------------------------------------------------bitttttttttttii---------------->
SERVERVARİABLES
KOLEKSİYONU
ServerVariables
koleksiyonu server değişken değerlerini alır.
Kullanımı:
<%
response.write("kullanıdığınız
tarayıcı" &request.ServerVariables("HTTP_USER_AGENT"))
response.write("IP adresin"
&request.ServerVariables("REMOTE_ADDR"))
response.write("kullanıdığınız
tarayıcı" &request.ServerVariables("HTTP_USER_AGENT"))
%>
|
Değişkenin adı
|
Değeri
|
ALL_http
|
HTTP Header içinde yer alan bütün
değişkenler ve değerleri. Header
adlarının önünde "HTTP_" öneki vardır.
|
ALL_RAW http
|
Header içinde
yer alan bütün değişkenler ve değerleri. Header adları ve değerleri istemci
Browser'ın verdiği şekilde gösterilir.
|
APPL_MD_PATH
|
Web Server'ın
ISAPI.DLL dosyası için varsaydığı kök dizin
|
APPL_PHYSICAL_PATH
|
Web Server'ın
varsaydığı kök dizinin gerçek yolu
|
AUTH_PASSWORD
|
Kullanıcı Web
Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan parola
|
AUTH_TYPE
|
Kullanıcı Web
Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan
yetkilendirme yöntemi
|
AUTH_USER
|
Kullanıcı Web
Server'a kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanıcı adı
|
CERT_COOKIE
|
Kullanıcı
siteye bağlanmak için yetkilendirme sertifikası kullanıyorsa kendisine
verilen kimlik (ID)
|
CERT_FLAGS
|
Sertifikanın
varlığını gösteren bit değeri
|
CERT_ISSUER
|
Sertifika varsa
veren kurum
|
CERT_KEYSIZE
|
Secure Socket
Layers kullanılıyorsa, bağlantı için anahtar değeri
|
CERT_SECRETKEYSIZE
|
Özel anahtar
değeri
|
CERT_SERIALNUMBER
|
Sertifika seri
no.
|
CERT_SERVER_ISSUER
|
Sertifikayı
veren merci
|
CERT_SERVER_SUBJECT
|
Server
Sertifikasının "konu" alanı değeri
|
CERT_SUBJECT
|
İstemci
Sertifikasının konu alanı değeri
|
CONTENT_LENGTH
|
İstemcinin
gönderdiği bilgi yumağının boyutu
|
CONTENT_TYPE
|
Ziyaretçiden
gelen bilgilerin GET veya POST metoduna göre edindiği tür
|
GATEWAY_INTERFACE
|
Web Server'ın
ziyaretçi ile etkileşim arayüzünün adı ve sürümü. Genellikle: CGI/1.1
|
HTTPS
|
Ziyaretçi ile
bağlantı güvenli ise ON, değilse OFF
|
HTTPS_KEYSIZE
|
Secure Sockets Layer
için bağlantı anahtar sayısı
|
HTTPS_SECRETKEYSIZE
|
Özel Server
sertifikasının gizli anahtar sayısı
|
HTTPS_SERVER_ISSUER
|
Özel Server
sertifikasının veren merci
|
HTTPS_SERVER_SUBJECT
|
Özel Server
sertifikasının konusu
|
INSTANCE_ID
|
Web Server'ın
aynı anda kaç kere çalışmakta olduğu
|
INSTANCE_META_PATH
|
Şu anda
çalışmakta olan Web Server'ın Meta yolu
|
LOCAL_ADDR
|
İstemcinin IP
numarası
|
LOGON_USER
|
İstemci Windows
NT sisteminde ise oturum açma adı
|
PATH_INFO
|
Çalışmakta olan
ASP'nin göreli yolu ve adı
|
PATH_TRANSLATED
|
Çalışmakta olan
ASP'nin gerçek yolu ve adı
|
QUERY_STRING
|
İstemcinin
gönderdiği bilgi kümesi
|
REMOTE_ADDR
|
İstemcinin
Host'unun (ISS'inin) IP'si
|
REMOTE_HOST
|
İstemcinin
Host'unun (ISS'inin) adı
|
REMOTE_USER
|
İstemcinin
gerçek adı
|
REQUEST_METHOD
|
İstemciden
bilgi isteme yöntemi (GET veya POST)
|
SCRIPT_NAME
|
Çalışmakta olan
ASP'nin adı
|
SERVER_NAME
|
Sunucu'nun adı
|
SERVER_PORT
|
Sunucuya
bağlantının geldiği TCP kapı numarası
|
SERVER_PORT_SECURE
|
TCP kapısı
güvenli ise 1, değilse 0
|
SERVER_PROTOCOL
|
Server'ın
çalıştırdığı HTTP'nin sürümü
|
SERVER_SOFTWARE
|
Server
programının adı ve sürümü
|
URL
|
Şu anda geçerli
URL
|
Örnekler:
Aşağıdaki
örnekte ServerVariables koleksiyonunu bütün özellikler sıralanır.
Örnek1:
<%
for each x in Request.ServerVariables
response.write(x & "<br />")
next
%>
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
ÖZELLİKLERİ:
TOTALBYTES
ÖZELLİĞİ
Bu
özellik browser tarafından gönderilen bilginin toplam olarak kaç byte olduğunu
bulmak için kullanılır.
Kullanımı:
değişken=Request.Totalbytes
|
Örnek:
<%
dim toplambyte
toplambyte=Request.TotalBytes
%>
|
ß------------------------------------------bitttttttttttii---------------->
SESSİON NESNESİ
Session
Türkçe kelime karşılığı oturumdur.Ziyaretçi sunucuya bağlandığı zaman ASP’de
bir oturum(session) açılmış olur. Sessionlar oluşturularak oturum kapanana
kadar ziyaretçinin bütün yaptıkları izlenebilir. Bütün sayfalarda geçerli olabilecek
değişkenleri session nesnesiyle oluştururuz. Session nesnesi bilgileri tek bir kullanıcıya
özel olarak depo eder. Sunucu her bir kullanıcıya ayrı bir session oluşturur.
Aşağıda
session nesnesinin özellikleri,metotları,koleksiyonları ve olayları
açıklanmıştır.
Özellikler
Özellikleri
|
Açıklama
|
CodePage
|
CodePage
özelliği, sayfada kullanılan dili belirtir.
|
LCID
|
Session nesnesinin LCID özelliği , sayfamızdaki
tarih, saat gibi bölgesel ayarları yapmamızı sağlar.
|
SesionID
|
Her oturum başlatıldığında, sunucumuz tarafından
oturumu başlatan kişiye bir numara vermemizi sağlar.
|
Timeout
|
Sunucunun oturum süresini bu özellik sayesinde
değiştirebiliriz.
|
Metotlar
Metotları
|
Açıklama
|
Abandon
|
Abandon yöntemi, bir Session nesnesinde saklı olan
tüm nesneleri yok eder.
|
Contents.Remove(Item or Index)
|
Contents.remove
metodu, Contents koleksiyonundaki istenilen değerleri siler.
|
Contents.RemoveAll()
|
Contents.remove
metodu, Contents koleksiyonundaki bütün değerleri siler.
|
Koleksiyonlar
Koleksiyonu
|
Açıklama
|
Content
|
O ana kadar oluşturulan sessionları, Contents
koleksiyonu tutar.
|
StaticObjects
|
HTML de kullanılan <OBJECT> etiketi ile
olusturulmus olan oturum nesnelerini içerir.
|
Olayları
Olayları
|
Açıklama
|
OnEnd
|
Kullanıcı
oturumu bittiğinde yapılması
gerekenleri tanımlar.
|
OnStart
|
Kullanıcı
oturumu başladığında yapılması gerekenleri tanımlar.
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
Koleksiyonları:
CONTENTS
KOLEKSİYONU
O
ana kadar oluşturulan sessionları, Contents koleksiyonu tutar. Contents
koleksiyonunu kullanarak asp oluşturduğumuz sessionların hepsine ulaşabiliriz.
Kullanımı:
Session.Contents(değer)
|
Aşağıdaki örnekte 3 tane session oluşturuluyor.
Örnekler:
Örnek1:
<% session("deneme")="bu bir deneme"
session("slm")="merhaba"
session("hi")="how are you"
response.write("session’lar oluşturuldu...")
response.Write("<a href=session2.asp>diger sayfaya session taşıyoruz</a>")
%>
|
Çıktı:
session'lar olusturuldu...diger sayfaya session tasiyoruz
session2.asp sayfamızda oluşturulan bütün sessionları contents koleksiyonu ile gösteriyoruz.
Örnek2:
Session2.asp
<%
session("ad")="hanife"
session("soyad")="doganay"
session("yas")="21"
session("anneadi")="selver"
session("babaadi")="hilmi"
response.write("toplam session değeri....:"+cstr(session.Contents.count)+"<br>")
for i=1 to session.Contents.count
response.write(session.Contents(i)+"<br>")
next
%>
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
Özellikler:
CODEPAGE
ÖZELLİĞİ
CodePage
özelliği, sayfada kullanılan dili belirtir.
Kullanımı:
Session.CodePage=(Codepage)
|
Sayfamızda kullandığımız dil Türkçe ise,karekterlerin doğru gözükmesi için asağıdaki kodu yazarız.
Örnek:
<%
Session.CodePage = 1254
%>
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
LCID ÖZELLİĞİ
Session
nesnesinin LCID özelliği , sayfamızdaki tarih, saat gibi bölgesel ayarları
yapmamızı sağlar. Bunu konuma veya bölgeye göre özel İnteger değer ile yaparız.
Kullanımı:
Session.LCID=LCID
|
Örnek:
<%
response.write("<p>")
response.Write("Ana değeri :
"&session.LCID&"<br>")
response.write("Saatiniz...:
"&date()&"<br>")
response.Write("Para
biriminiz...: "&FormatCurrency(100)&"<br>")
response.Write("</p>")
session.LCID=1036
response.write("<p>")
response.Write("Şuanki LCD
değeriniz :
"&session.LCID&"<br>")
response.write("Tarihiniz...:
"&date()&"<br>")
response.Write("Şuanki Para
biriminiz...: "&FormatCurrency(100)&"<br>")
response.Write("</p>")
Session.LCID=3079
response.write("<p>")
response.Write("Şuanki LCD
değeriniz :
"&session.LCID&"<br>")
response.write("Tarihiniz...:
"&date()&"<br>")
response.Write("Şuanki Para biriminiz...:
"&FormatCurrency(100)&"<br>")
response.Write("</p>")
Session.LCID=2057
response.write("<p>")
response.Write("Şuanki LCD
değeriniz :
"&session.LCID&"<br>")
response.write("Tarihiniz...:
"&date()&"<br>")
response.Write("Şuanki Para
biriminiz...: "&FormatCurrency(100)&"<br>")
response.Write("</p>")
%>
|
Çıktı:
Ana degeri : 2057Saatiniz...: 22/01/2007
Para biriminiz...: £100.00
Suanki LCD degeriniz : 1036
Tarihiniz...: 22/01/2007
Suanki Para biriminiz...: 100,00 €
Suanki LCD degeriniz : 3079
Tarihiniz...: 22.01.2007
Suanki Para biriminiz...: € 100,00
Suanki LCD degeriniz : 2057
Tarihiniz...: 22/01/2007
Suanki Para biriminiz...: £100.00
YEREL ID:
LCID
|
DİL
|
LCID
|
DİL
|
Afrikaans
|
Albanian
|
||
Arabic(Algeria)
|
Arabic(Bahrain)
|
||
Arabic(Egypt)
|
Arabic(Iraq)
|
||
Arabic(Jordan)
|
Arabic(Kuwait)
|
||
Arabic(Lebanon)
|
Arabic(Libya)
|
||
Arabic(Morocco)
|
Arabic(Oman)
|
||
Arabic(Qatar)
|
Arabic(Saudi Arabia)
|
||
Arabic(Syria)
|
Arabic(Tunisia)
|
||
Arabic(U.A.E.)
|
Arabic(Yemen)
|
||
Basque
|
Belarusian
|
||
Bulgarian
|
Catalan
|
||
Chinese(Hong Kong)
|
Chinese(PRC)
|
||
Chinese(Singapore)
|
Chinese(Taiwan)
|
||
Croatian
|
Czech
|
||
Danish
|
Dutch(Belgian)
|
||
Dutch(Standard)
|
English
|
||
English(Australian)
|
English(Belize)
|
||
English(British)
|
English(Canadian)
|
||
English(Caribbean)
|
English(Ireland)
|
||
English(Jamaica)
|
English(New Zealand)
|
||
English(South Africa)
|
English(Trinidad)
|
||
English(United States)
|
Estonian
|
||
Faeroese
|
Farsi
|
||
Finnish
|
French(Belgian)
|
||
French(Canadian)
|
French(Luxembourg)
|
||
French(Standard)
|
French(Swiss)
|
||
Gaelic(Irish)
|
Gaelic(Scots)
|
||
German(Austrian)
|
German(Liechtenstein)
|
||
German(Luxembourg)
|
German(Standard)
|
||
German(Swiss)
|
Greek
|
||
Hebrew
|
Hindi
|
||
Hungarian
|
Icelandic
|
||
Indonesian
|
Italian(Standard)
|
||
Italian(Swiss)
|
Japanese
|
||
Korean
|
Korean(Johab)
|
||
Latvian
|
Lithuanian
|
||
Macedonian
|
Malaysian
|
||
Maltese
|
Norwegian(Bokmal)
|
||
Norwegian(Nynorsk)
|
Polish
|
||
Portuguese(Brazilian)
|
Portuguese(Standard)
|
||
Rhaeto-Romanic
|
Romanian
|
||
Romanian(Moldavia)
|
Russian
|
||
Russian(Moldavia)
|
Sami(Lappish)
|
||
Serbian(Cyrillic)
|
Serbian(Latin)
|
||
Slovak
|
Slovenian
|
||
Sorbian
|
Spanish(Argentina)
|
||
Spanish(Bolivia)
|
Spanish(Chile)
|
||
Spanish(Colombia)
|
Spanish(Costa Rica)
|
||
Spanish(Dominican Republic)
|
Spanish(Ecuador)
|
||
Spanish(El Salvador)
|
Spanish(Guatemala)
|
||
Spanish(Honduras)
|
Spanish(Mexican)
|
||
Spanish(Nicaragua)
|
Spanish(Panama)
|
||
Spanish(Paraguay)
|
Spanish(Peru)
|
||
Spanish(Puerto Rico)
|
Spanish,Spain-Modern Sort
|
||
Spanish(Spain - Traditional
Sort)
|
Spanish(Uruguay)
|
||
Spanish(Venezuela)
|
Sutu
|
||
Swedish
|
Swedish(Finland)
|
||
Thai
|
Tsonga
|
||
Tswana
|
Turkish
|
||
Ukrainian
|
Urdu
|
||
Venda
|
Vietnamese
|
||
Xhosa
|
Yiddish
|
||
Zulu
|
default
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
SESSİONID
ÖZELLİĞİ
Yeni
bir oturum açıldığında, sunucumuz tarafından oturumu başlatan kişiye bir numara
verilir. Bu numara, diğer ziyaretçilere verilen numaradan farklıdır. Her
kullanıcı için ayrı bir numara tahsis etmiş ve işlerimizi bu numaralara göre
yapmış oluruz.Bu numaranın ne olduğunu SessionID özelliği sayesinde
bulabiliriz. Sunucunun gönderdiği değer long formatındadır.
Kullanımı:
Session.SessionID
|
Örnek:
<%
response.write(session.SessionID)
%>
|
Çıktı:
586757576
ß-------------------------------------------------------------------bitttttttttttii---------------->
TİMEOUT ÖZELLİĞİ
Ziyaretçi
siteye ilk girdiği anda, onunla ilgili session aktif olur. Ziyaretçi, bir
sayfadan diğerine geçse bile, eğer bazı session değişkenlerine onunla ilgili
bilgi atamışsak, bu bilgiler silinmez. Session değişkenlerini sayfalar arasında
taşımamıza gerek yoktur, onlar ziyaretçi sitede kaldığı sürece veya oturum sona
erme zamanı ile belirtilen dakika boyunca aktif kalırlar.
Ziyaretçi
sayfalarımızı dolaşırken oluşturulan session nesnesi, ya bizim belirleyeceğimiz
ya da önceden sunucu tarafından belirlenen zaman aşılınca sona erer. Ayrıca,
ziyaretçi sitemizi terk ettiği zaman da onunla ilgili oturum sona erer.
Sunucunun
oturum süresini TimeOut özellik sayesinde değiştirebiliriz. Genellikle
sunucuların oturum süresi, varsayılan olarak 20 dakikadır. Yani, bir
ziyaretçimiz 20 dakika boyunca hiçbir aktivite yapmazsa, bir başka deyişle
hiçbir sayfa gezmez, sadece sitede durursa, onun oturumu kapatılacak demektir.
TimeOut’a verilen değer dakika cinsindendir.
Kullanımı:
Session.Timeout[=nDakika]
|
Örnek:
<%
Session.TimeOut = 10
%>
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
Metotlar:
ABANDON METOTU
Abandon
yöntemi, bir Session nesnesinde saklı olan tüm nesneleri yok eder ve
kaynaklarını bırakır. Abandon yöntemini çağırmak istemiyorsanız, sunucu bu
nesneleri oturumun süresi bittiğinde yok eder. Abandon metodu çağrıldığı
zaman session nesnesi bir havuza alınır sayfadaki bütün komutlar işlendikten
sonra session nesnesi silinir
Kullanımı:
Session.Abandon
|
Örnek:
<%
session.Abandon
session("id")="1"
session("ad")="hanife"
response.write("<a
href=session7.asp>Diger sayfaya aktarımayacam id ve ad
sessionları</a>")
%>
Session7.asp
<%
response.write(session(id)&"<br>")
response.write(session(ad)&"<br>")
response.Write("değerler
gösterilmedi")
%>
|
Çıktı:
degerler gösterilmedi
ß-------------------------------------------------------------------bitttttttttttii---------------->
CONTENTS.REMOVE
MEOTU
Contents.remove
metodu, Contents koleksiyonundaki istenilen değerleri siler.
Kullanımı:
Session.Contents.Remove(isim|index)
|
Aşağıdaki örnekte 2 numaralı session silinmiştir.
Örnek:
<%
session("ulke")="türkiye"
session("şehir")="istanbul"
session("okul")="marmara üniversitesi"
session.Contents.remove(2)
for i=1 to session.Contents.count
response.write(session.Contents(i)&"<br>")
next
%>
|
Çıktı:
türkiye
marmara üniversitesi
ß-------------------------------------------------------------------bitttttttttttii---------------->
CONTENTS.REMOVEALL
METOTU
Contents.remove metodu, Contents
koleksiyonundaki bütün değerleri siler.
Kullanımı:
Session.Contents.RemoveAll()
ß-------------------------------------------------------------------bitttttttttttii---------------->
Olaylar:
ONSTART VE
ONEND OLAYLARI
OnStart
ve onEnd olayları,kullanıcı oturumu başladığında ve bittiğinde yapılması
gerekenleri tanımlar.
Kullanımı:
<script language="vbscript" runat="server">
Sub Session_OnStart
. . .
End Sub
Sub Session_OnEnd
. . .
End Sub
</script>
|
Örnek:
global.asa
<script
language="vbscript" runat="server">
Sub Application_OnEnd()
Application("toplamziyaratci")=Application("ziyaretci")
End Sub
Sub Application_OnStart
Application("ziyaretci")=0
End Sub
Sub Session_OnStart
Application.Lock
Application("ziyaretci")=Application("ziyaretci")+1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("ziyaretci")=Application("ziyaretci")-1
Application.UnLock
End Sub
</script>
|
Ziyaretçi
sayısını göstereceğin sayfan
şu
anada sitemizde <% response.write(application("ziyaretci"))%>
kadar kişi onlinedır.
ß-------------------------------------------------------------------bitttttttttttii---------------->
APPLİCATİON
NESNESİ
Yığın halinde
tek başlarına çalışabilen asp uygulamalarımızı birbirleriyle ilişkilendirmek
Application nesnesi ile mümkündür.kullanımı session nesnesine benzemektedir.
Aynı application nesnesini bütün kullanıcılar kullanabilir;application nesnesi
globaldir.Global bir değişken olduğu için global.asa dosyası altında
tutulurlar.Session
nesnesini anlatırken her kullanıcıya ayrı bir oturum açıldığından bahsetmiştik.
Ziyaretçi sayfayı kapattığı zaman oturum kapanacaktır. Hiç bir oturumda
değişmeyen ve bütün ziyaretçiler için geçerli olan tanımlamalar veya değerler
application nesnesiyle yapılır. Application nesnesini bütün asp dosyalarının koleksiyonlarını tutan
sanal bir dosya gibidir. Application nesnesi temel bir değişken olarak
tanımlanabilir.Bu değişken bütün sayfalarda geçerlidir.
Application
nesnesi koleksiyonları,metotları ve olayları vardır.
Metotlar
Metotları
|
Açıklama
|
Lock
|
'Application'ı Kilitlemek için kullanılır
|
Unlock
|
Kilitlenen
'Application' serbest bırakmak için kullanılır.
|
Contents.Remove(Item or Index)
|
Contents.remove
metodu, Contents koleksiyonundaki istenilen değerleri siler.
|
Contents.RemoveAll()
|
Contents.remove
metodu, Contents koleksiyonundaki bütün değerlerini siler.
|
Koleksiyonlar
Koleksiyonu
|
Açıklama
|
Content
|
Applicaton
nesnesiyle oluşturulmuş bütün değerleri contents koleksiyonu tutar.
|
StaticObjects
|
Global.asa da sitaticObjects olarak
tanımlanmış application nesnelerini tanımlar.
|
Olayları
Olayları
|
Açıklama
|
OnEnd
|
Application_OnEnd olayı application bittiği zaman meydana gelir. Olayın gerçekleştiği yer global.asa dosyasıdır. |
OnStart
|
Application_OnStart olayı ilk oturum
oluşturulmadan önce meydana gelir. Olayın gerçekleştiği yer global.asa dosyasıdır. |
ß-------------------------------------------------------------------bitttttttttttii---------------->
Koleksiyonları
CONTENTS
KOLEKSİYONU
Applicaton
nesnesiyle oluşturulmuş bütün değerleri contents koleksiyonu tutar.
Kullanımı:
Apllication.contents(değer)
|
Örnek:
<%
application("slm")="hello"
application("nereye")="word"
for each x in Application.Contents
Response.Write(x & "=" &
Application.Contents(x)&"<br>" )
next
%>
|
Çıktı:
slm=hello
nereye=word
nereye=word
ß-------------------------------------------------------------------bitttttttttttii---------------->
StaticObjects
Global.asa
da staticObjects olarak tanımlanmış application nesnelerini tanımlar.
Kullanımı:
Application.StaticObjects(değer)
|
Örnek:
<%
for each deger in Application.StaticObjects
Response.Write(x & "<br />")
next
%>
|
Yukarıdaki örnek ile sitaticObjects koleksiyonunun değerleri gösterilebilir.
ß-------------------------------------------------------------------bitttttttttttii---------------->
Metotları
Contents.Remove
:
applicationda
bulunan öğelerin isim veya numaralarına silen bir özelliktir.
Kullanımı:
application.Contents.Remove(isim|index)
|
aşağıdaki
örnekte application.Contents.remove(2) değeri silinir.
Örnek
<%
application("adi")="terry"
application("sayadi")="angel"
application("age")="47"
application("mesleği")="bankacı"
application.Contents.remove(2)
for each x in application.Contents
response.Write(application.Contents(x)&"<br>")
next
%>
|
Çıktı:
angel
47
bankaci
47
bankaci
Contents.RemoveAll
Applicationda
bulunan öğelerin isim veya numaralarına hepsini silen bir özelliktir.
Kullanımı:
Application.Contents.RemoveAll()
|
Örnek:
Application.Contents.RemoveAll()
|
Yukarıdaki örnekte content bulunan değerlerin hepsini siler.
ß-------------------------------------------------------------------bitttttttttttii---------------->
Lock
Lock
metodu application nesnesi kilitler. Application nesnesine değer atarken
herhangi bir kullanıcının application nesnesindeki değeri değiştirmemesi için
Lock metodu kullanılır.
Unlock
Unlock
metodu ile kilitlediğimiz application nesnemizi serbest bırakırız.
Kullanımı:
Application.Lock
Application.Unlock
|
Örnek:
<%
Application.Lock
Application("ziyaretciler")=Application("ziyaretciler")+1
Application.Unlock
%>
Sayfa bugüne kadar
<%=Application("ziyaretciler")%> kere ziyaret edildi!
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
Olaylar
OnStart
Application_onstart
olayı web uygulamanızdan ilk .asp dosyası çagrıldığı zaman aktif olur.
onEnd
Application_onend
olayı ise web sunucunuzun kapatıldığı zaman tetiklenen olaydır.
Not:
Application
olayları global asa da tanımlanır.
Kullanımı:
<script language="vbscript" runat="server">
Sub Application_OnStart
. . .
End Sub
Sub Application_OnEnd
. . .
End Sub
</script>
|
Örnek:
<script
language="vbscript" runat="server">
Sub Application_OnEnd()
Application("toplamziyaratci")=Application("ziyaretci")
End Sub
Sub Application_OnStart
Application("ziyaretci")=0
End Sub
Sub Session_OnStart
Application.Lock
Application("ziyaretci")=Application("ziyaretci")+1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("ziyaretci")=Application("ziyaretci")-1
Application.UnLock
End Sub
</script>
|
Çıktı
olarak ekranda göstermek için aşağıdaki kodları kullanabilirsiniz
<script
language="vbscript" runat="server">
<html>
<head>
</head>
<body>
<p>
Şuanda <%response.write(Application("ziyaretci"))%>
Kişi online…
</p>
</body>
</html>
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
SERVER NESNESİ
Web
Server, ASP için bir nesnedir.Server nesnesi serverın özellik ve metotlarına
erişim sağlanmak için kullanılır.
Aşağıda
metotları,özellikleri tanımlanmıştır.
Özellikler
Özellikleri
|
Açıklama
|
ScriptTimeOut
|
Scriptler’in çalıştırılması süresini belirler.
|
Metotlar
Metotları
|
Açıklama
|
CreateObject(type_of_object)
|
Sunucu nesne örneği oluşturur
|
Execute(yol)
|
Asp
sayfasında başka bir asp sayfası çalıştırmaya izin verir.
|
GetLastError()
|
Serverda
oluşan en son hatayı tanımlar.
|
HTMLEncoder(string)
|
HTML
kodları sitemizde göstermek istediğimizde HTMLEncode metodunu kullanırız.
|
MapPath(yol)
|
Dosyamızın
konum bilgisini scriptlerimizde kullanabiliriz
|
Transfer(yol)
|
Asp
sayfasının başka bir Asp sayfasına transfer edilmesi için kullanılır
|
URLEncode(string)
|
Verilen ifadeyi URL kodlamasına çevirir.
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
Metotları:
CreateObject
Serverda bulunan nesnenin bir örneğini oluşturur. Oluşturulan nesne örneğinin ve metotlarını ve özelliklerini kullanabileceksiniz. Sık sık createobject ile nesne oluşturuyorsanız bunu global .asa Bir kere oluşturmanız sizin için daha kullanışlı olur. Server nesnesinin bir örneği oluşturulmadan metotları veya özellikleri kullanılamaz.
Kullanımı:
Server.CreateObject(nesne adı)
|
Aşağıdaki örnekte bir recordset objesi oluşturuluyor ve onun özellikleri böylece
kullanılabiliyor. Ve özellikleri ve mototları kullanılıyor.
Örnek:
set rs=server.CreateObject ("Adodb.Recordset") ’nesne oluşturuluyor……
rs.ActiveConnection=Bag
sorgu="select from uyeler where id="&id&""
rs.open"uyeler",bag,3,2
rs.addnew
rs.fields("kullanici_adi")=kullanici_adi
rs.fields("sifre")=sifre
rs.fields("ad")=ad
rs.fields("soyad")=soyad
rs.fields("meslek")=meslek
rs.fields("mail")=mail
rs.fields("tarih")=now()
<%=Application("ziyaretciler")%> kere ziyaret edildi!
|
ß-------------------------------------------------------------------bitttttttttttii---------------- Execute
Execute
metodu ile Asp sayfası içinde başka bir Asp sayfası çağrılabilir.
Aşağıdaki
örnek ile çok mutluyum yazısı altında text.asp sayfasının içeriği gözükür.
Kullanımı:
Server.Execute(yol)
|
Örnek:
<body>
Çok mutluyum
<%
server.Execute("text.asp")
%>
</body>
|
Yukarıdaki
örnekle birlikte Text.asp sayfası bu sayfa içerisinde işlenir.
ß-------------------------------------------------------------------bitttttttttttii----------------
getLastError:
Serverda
oluşan en son hatayı tanımlar.(anlatmaya gerek yok…)
ß------------------------------------------------------------------bitttttttttttii---------------->
HTMLEncode
HTML
kodları sitemizde göstermek istediğimizde HTMLEncode metodunu kullanırız. Web
browser html kodlarını gördüğü zaman yorumlamak isteyecektir ve
göstermeyecektir. Bu sorunu server nesnesinin bu metoduyla ortadan kalkar.
Kullanımı:
Server.HTMLEncode(string)
|
Aşagıdaki kod da htmlencode metodu kullanılmamıştır.
Örnek:
<body>
<%
response.write("html'nin <br> tagıyla bir alt satıra geçeriz")
%>
</body>
|
Çıktı:
html'nin
tagiyla bir alt satira geçeriz
Örnek:
<body>
<%
response.write(server.HTMLEncode("html'nin <br> tagıyla bir alt satıra geçeriz"))
%>
|
Çıktı:
html'nin <br> tagiyla bir alt satira geçeriz
ß------------------------------------------------------------------bitttttttttttii---------------->
MapPath
Bu metot sayesinde dosyamızın konum bilgisini
scriptlerimizde kullanabiliriz. Amacı, mantıksal (sanal) yol bilgisini bir istemci
tarayıcısı için kullanılabilir hale, yani
sunucudaki fiziksel yola uygun hale getirmektir. Bu metot Session.OnEnd
ve Application.OnEnd. olaylarında kullanılmaz.
Kullanımı:
Server.MapPath(path)
|
Örnek:
<body>
<%
response.Write(server.MapPath("session.asp"))
response.Write(server.MapPath("session1.asp"))
response.Write(server.MapPath("/responsenesnesi/response.asp"))
%>
</body>
|
Çıktı:
C:\Documents and Settings\hanife\Desktop\ornek\servernesnesi\session.aspC:\Documents and Settings\hanife\Desktop\ornek\servernesnesi\session1.aspc:\inetpub\wwwroot\responsenesnesi\response.asp
ß------------------------------------------------------------------bitttttttttttii---------------->
Trasfer
Asp
sayfasının başka bir Asp sayfasına transfer edilmesi için kullanılır.
Kullanımı:
Server.Transfer(path)
|
Aşağıdaki örnekte server5.asp sayfası server6.asp sayfasına transfer edilir.,
Örnek:
Server5.asp sayfası
<body>
<%
session("ad")="hanife"
session("soyad")="doğanay"
session("yas")="21"
session("En sevdiği şarkıcı")="jay sean"
session("En sevdiği şarkı")="stolen"
server.Transfer("server6.asp")
%>
</body>
Server6.asp sayfası
<body>
<%
response.write("bu sayfada session5.asp içeri gösterilecektir.<br>")
for each x in session.Contents
response.write(session.Contents(x)&"<br>")
next
%>
</body>
|
Çıktı:
bu sayfada session5.asp içeri gösterilecektir.
hanife
doganay
21
jay sean
stolen
ß-----------------------------------------------------------------bitttttttttttii---------------->
URLEncoder
Bu
metot verilen ifadeyi URL kodlamasına çevirir. URL kodlaması, boşlukları +'ya,
A-Z ve a-z ile 0-9 arasındaki karakterleri olduğu gibi taşıyıp geri kalan her
şeyi de %HH şeklinde onaltılı sayı sisteminde bir koda dönüştüren özel bir
kodlama biçimidir.
Kullanımı:
Server.URLEncode(string)
|
Örnek:
<body>
<%
response.write(server.URLEncode(" server urlencoder ozelliği.com"))
%>
</body>
|
Çıktı:
+server++++urlencoder+ozelligi%2Ecom
ß----------------------------------------------------------------bitttttttttttii---------------->
Özellikler
ScriptTimeout
Scriptlerin belirli bir süre içinde çalıştırılması
beklenir. Bu süreyi scriptTimeout özelliğiyle ayarlayabiliriz. Default değeri
90 sn’dir.
Kullanımı:
Server.ScriptTimeout=süre
|
Örnek:
Örnek1
<%
Server.ScriptTimeout=100
%>
Örnek2:
<%
response.write(Server.ScriptTimeout)
%>
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
ERROR
NESNESİ
Asperror nesnesi ASP script veya asp.dll tarafından oluşan hataların
yakalanması için kullanılır. Asperror objesi Server.GetLastError metodu gelen
hataları yakalayarak kullanıcıyı standart hataların açıklandığı sayfalara
yönlendirmek için kullanılabilir.
ASP 3.0 ve IIS 5 de gelen Error nesnesi,hataları yönetmemize
olanak sağlar. ASP kodları yazarken ufak hatalar veya kodları değiştirirken hata oluşabilir.
Çok küçük bir hata bile oluşsa sayfanın işlenmesi durdurulur ve hata mesajı çıkar.
Bu tür hata mesajlarını istersen kullanıcıya göstermeye biliriz veya hata raporu şeklinde çıktı verebiliriz.Bu tür hata kontrollerini Error Nesnesi sağlarız. Aşağıda Error Nesnesi sadece özelliklere sahiptir.Bu özellikler sadece okunabilir.
Çok küçük bir hata bile oluşsa sayfanın işlenmesi durdurulur ve hata mesajı çıkar.
Bu tür hata mesajlarını istersen kullanıcıya göstermeye biliriz veya hata raporu şeklinde çıktı verebiliriz.Bu tür hata kontrollerini Error Nesnesi sağlarız. Aşağıda Error Nesnesi sadece özelliklere sahiptir.Bu özellikler sadece okunabilir.
ASP sayfasının başıan <% On Error Resume
Next %> yazılırsa,hata kısımı boş bırakılır.Bu hata mesajlarını
düzenli bir şekilde ekrana yazmak için özelliklerden faydalanabiliriz.
Note:
Aşağıdaki özellikler sadece Server.GetLastError() metodu ile kullanılabilir.
Özellikler
Özellikleri
|
Açıklama
|
ISS tarafında oluşan hata komutunu geri döndürür.
|
|
ASPDescription
|
Oluşan hata ASP ile alakalıysa detaylı bir açıklama
döndürür.
|
Category
|
Hatanın kaynağını döndürür.
|
Column
|
ASP
sayfası içinde hataya sebep olan kodlamanın sütun pozisyonunu döndürür.
|
Description
|
Hata hakkında kısa bir açıklama döndürür.
|
File
|
Hata oluşan ASP dosyasının yolunu döndürür.
|
Line
|
Hatanın
kaçıncı satırda oluştuğunu döndürür.
|
Number
|
Standart COM hata numarası döndürür.
|
Source
|
Hataya sebep olan kodlar okunabiliyorsa bu kodları
döndürür.
|
ß-------------------------------------------------------------------bitttttttttttii---------------->
Özellikleri
ASPDescription: Oluşan hata ASP ile alakalıysa detaylı bir açıklama
döndürür.
Category: Hatanın kaynağını döndürür.
Column: ASP sayfası içinde hataya sebep olan kodlamanın sütun
pozisyonunu döndürür.
Description: Hata hakkında kısa bir açıklama döndürür.
File: Hata oluşan ASP dosyasının yolunu döndürür.
Line: Hatanın kaçıncı satırda oluştuğunu döndürür.
Line: Hatanın kaçıncı satırda oluştuğunu döndürür.
Number: Standart COM hata numarası döndürür.
Source: Hataya sebep olan kodlar okunabiliyorsa bu kodları döndürür.
Source: Hataya sebep olan kodlar okunabiliyorsa bu kodları döndürür.
Kullanımları:
ASPError.ASPCode()
ASPError.ASPDescription()
ASPError.Category()
ASPError.Column()
ASPError.Description()
ASPError.File()
ASPError.Line()
ASPError.Number()
ASPError.Source()
|
Örnek:
<%
dim objErr
set
objErr=Server.GetLastError()
response.write("ASPCode="
& objErr.ASPCode)
response.write("<br
/>")
response.write("ASPDescription="
& objErr.ASPDescription)
response.write("<br
/>")
response.write("Category="
& objErr.Category)
response.write("<br
/>")
response.write("Column="
& objErr.Column)
response.write("<br
/>")
response.write("Description="
& objErr.Description)
response.write("<br
/>")
response.write("File="
& objErr.File)
response.write("<br
/>")
response.write("Line="
& objErr.Line)
response.write("<br
/>")
response.write("Number="
& objErr.Number)
response.write("<br
/>")
response.write("Source="
& objErr.Source)
%>
|
Hiç yorum yok:
Yorum Gönder