1 Mart 2012 Perşembe




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:
  1. 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.

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
ß-------------------------------------------------------------------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
%>
  • 1252 – Amerikan İngilizcesi ve çok kullanılan dünya dilleri
 
ß-------------------------------------------------------------------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 : 2057
Saatiniz...: 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)
9
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


ß-------------------------------------------------------------------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

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.

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

ASPCode: 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.


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