14

Bir önceki sayfa
Giriş Sayfası
Bir Sonraki sayfa

 

 

 Request Nesnesi

 

Request nesnesi bir bilgi alma nesnesidir. Bu nesne yardımı ile yazdığımız scriptler

dışarıdan veya bir önceki sayfadan bilgi almakta kullanılır. Bünyesinde beş adet ana

fonksiyon bulundurmaktadır. Bunlar;

 

1. Cookie

2. ServerVariables

3. Form

4. QueryString

5. TotalBytes

 

 Veri Transferi

İstemci tarafında, request nesnesine bilgi depolanır ve sunucuya HTTP belge isteğinin

bir parçası olarak gönderilir. Sunucu bu bilgiyi dekod eder ve ASP boyunca

kullanılabilir hale getirir. Sunucuya bilgi göndermenin iki yöntemi vardır; birincisi

sayfadaki <form> kısmını kullanmak ve ikinci olarak da URL’nin sonuna bir sorgu

stringi gibi eklenerek doğrudan sağlanabilir.

 

Bu veriyi bir ASP scriptine göndermek için HTML içinde form oluşturmak ile mümkün

olmaktadır. Eğer formun metod özelliği “GET” şeklinde ise verimiz URL sonuna ekli

olarak gönderilmektedir. Ama formun metod özelliği “POST” şeklinde ise verimiz

HTTP belgesinin bir parçası olarak gizli şekilde gönderilmektedir.

 

Gerek form içerisinde gerekse URL sonunda string olarak gönderilen verileri ASP

içerisinde kullanmak için veriyi (server tarafından dekod edilmiş bilgiyi) bir değişkene

aktarmak gerekmektedir.

 

Bunu ASP içinde 2 farklı şekilde yapmaktayız. Bu farklılık verinin gönderiliş

tarzından ileri gelmektedir. Eğer verimiz URL sonunda bir sorgu stringi şeklinde

gönderilmiş ise veriyi:

 

<%

is = request.querystring(“veri”) im

%>

Örnek 102 : QueryString ile Veri Alımı.

 

Şeklinde alabilmekte ve asp içerisinde kullanabilmekteyiz. Bu kod içinde “isim”

değişkenine URL sonuna ek veri larak gönderilen “veri” datasını verdik. Nesne

metodunun isminde de anlaşılacağı gibi “querystring” yani sorgu cümleciği şeklinde bir

veri transferi yapılmıştır. Bu data url sonunda şu şekilde gözükmektedir.

Test.asp?veri="A.Güler"

 

Yukarıda ki örnekdende görüleceği gibi "A.Güler" verimizi test.asp sayfasına URL

sonuna eklenmiş olarak gönderdik. Ve bunu yaparken ara değişken olarak “veri”’yi

kullandık.

 

Bu veri transferini yapmanın bir diğer yolu da gönderen form özelliğini “POST” yaparak

mümkün olmaktadır. Bu özellik sayesinde verilerimiz URL satırında gözükmeden alıcı

tarafından kullanabilmektedir.

 

Eğer verimiz form içerisinde “POST” şeklinde gönderilmiş ise bunu ASP içerisinde bir

değişkene şu şekilde verebiliriz.

 

<%

isim = request.form(“veri”)

%>

Örnek 103 : Form ile Veri Alımı.

 

Yukarıdaki örneğin aynısını bu defa form içerisinde gizli olarak gönderdik. Tek

farkımız URL satırında veri gözükmemesidir (bu bilgi sunucuya gönderilen URL isteğinin

içerisinde gömülü olarak, başlık olarak gönderilmiştir) yani;

 

Test.asp

 

Şeklinde bir URL görmemizdir. Bu özellik sayesinde hem URL satırını gereksiz

doldurmamış hem de verilerimize gizlilik kazandırmış olmaktayız. (Not: bu veri transferi

tipini sadece form kullanarak veri  gönderdiğimiz için kullanabilmekteyiz.)

 

Bir request nesnesini hiçbir metod kullanmadan çağırmamız halinde; yani

 

Isim = request(“veri”)

 

Şeklinde bir kullanım olduğu zaman ASP bu nesnenin metodlarını bir sıra içerisinde

dener. Bu sıra

 

-QueryString

-Form

-Cookie

-ServerVariables

 

şeklindedir. Bu şekilde kullanmanız size kodlamada zaman ve hız kazandırabilir.

Fakat sistem kaynaklarından kullanarak birkaç denemede veriyi alacağı için performansta

bir düşme yapabilecektir.

 

Bir formdan veri isteğinde bulunurken dikkat etmeniz gereken bir diğer nokta da

veriyi alacağınız HTML elemanının tipidir. Şimdiye kadar anlatılan veri alımı sadece

normal textbox için geçerli idi fakat diğer öğeler için gelen veriler farklı olacaktır.

 

Bir formdan gönderilen verinin hepsini teker teker aldırmaktansa bir döngü

içerisinde bu işlemi kolayca yapabiliriz. Bu döngü aşağıdaki gibi olacaktır.

 

<%

For Each objitem in Request.Form

İf request.form(objitem).count > 0 then

For intLoop = 1 to Request.Form(objitem).count

Objitem = request.form(objitem)

End if

Next

%>

Örnek 104 : Formdaki Tüm Veriyi Alma.

 

Yukarıdaki örnekte bir önceki formdan gönderilen değişkenlerin değerleri kendi

isminde bir değişkene atanmış oldu. Bu şekilde bir kullanımla onlarca satır kod

yazmaktansa tüm form elemanlarını basitçe alabilmektesiniz.

 

 

 

 Server Variables

 

Request nesnesinin sağladığı bir diğer özellik de “sunucudeğişkenleri” dir. Bir istemci

tarafından serverda bir ASP programcığının çalıştırılmasıyla server kullanıcı için bir takım

değişkenler oluşturur. Bu değişkenler ASP programcığını çalıştıran her kullanıcı (client)

için farklılık taşıyabilir. Bu oluşturulan değişkenleri server variables özelliğini kullanarak

programımız içerisinde kullanılabileceğimiz bir değişkene atayabiliriz. Server variables

özelliği ile serverdan hangi değişkeni alacağımızı ise “istek metodu” yardımı ile yaparız.

Aşağıda server variables özelliğinin kullanımı gösterilmektedir.

 

<%

değişken = Request. servervariables(“istekmetodu”)

%>

Örnek 105 : ServerVariables Kullanımı.

 

Bu örnekte server tarafında olan bir değişkeni programcığımız içerisinde kullanmak

Amacıyla bir değişkene atadık. Bunu da yapmak için request (istek) nesnemizin server

variables özelliği kullandık.

 

İstek metodu serverdan alacağımız değişkenin tanımıdır. Bu metodları ise aşağıdaki gibi sıralayabiliriz

 

Bu istek metotlarından bir kaç tanesini örnekle açıklamak gerekirse.

 

<%

IP = Request. servervariables(“REMOTE_ADDR”)

%>

 

Örnek 106 : Kullanıcı IP Adresinin Öğrenilmesi.

 

Bu  programcık çalıştıktan sonra IP değişkenine kullanıcının IP si olan

“195.174.129.113” şeklinde bir değer alır.

 

<%

SN = Request. servervariables(“SCRIPT_NAME”)

%>

Örnek 107 : Script Adının Öğrenilmesi.

 

Bu programcığın çıktısı olarak SN değişkenimize o an çalışmakta olan scriptin adı

“script _name_test.asp” şeklindedir.

 

<%

LM = Request. servervariables(“LAST_MODIFIED”)

%>

Örnek 108 : Son Düzenlenme Tarihinin Öğrenilmesi.

 

Bu scriptimizde ise LM değişkenine o an çalışmakta olan programcığın en son

düzenlenme tarihi atanacaktır. Örneğimizde bu “03/09/2001” şeklinde olacaktır.

 

<%

RM = Request. servervariables(“REQUEST_METOD”)

%>

Örnek 109 : İstek Metodunun Öğrenilmesi.

 

Request metod özelliğini kullanan bu örnekte ise RM değişkenimize örneğe

gönderilen verinin gönderiliş biçimi atanacaktır. İki farklı değer karşımıza çıkabilir bunlar

GET yada POST olacaktır.


Cookies:

Cookieler, Netscape tarafından, web sunucularıyla istemcilerin etkileşiminde ortaya

çıkan bir açığı düzeltmek için geliştirildi. Cookieler olmadan, web sunucuları ve tarayıcılar

arasındaki etkileşim bir monologdan farklı olmazdı. Yani server clientdan gelen bilgileri

saklayabilirken, istemciler bu işlemi yapamayacaklardı.

 

Bu işlem için Cookieler kullanılmaya başladı. Böylece asp programları da istemci

tarafında veri kaydı yapabilecek ve bunu istediği zaman kullanabilecektir.

 

Ön bir bilgi verecek olursak şöyle söyleyebiliriz: Cookieler response nesnesi ile

kaydederken request nesnesi ile okutulabilen metin dosyaları şeklinde söyleyebiliriz.

 

İki tür Cookie mevcuttur: oturum Cookieleri ve kalıcı Cookieler. Oturum Cookieleri

hafızada saklanırlar, diğer taraftan kalıcı Cookieler aylarca hatta yıllarca kalabilirler. Kalıcı

Cookieler kullanıcının bilgisayarında metin dosyası olarak saklanır.

 

Request nesnesi ile response nesnesinin Cookie özelliği ile kaydedilmiş Cookieleri

çağırabiliriz (not: response nesnesi ileri ki bölümlerde ayrıntılı açıklanacaktır). Response

nesnesi ile Cookie kaydı şu şekilde yapılır:

 

<%

Response.Cookies(“degisken”) = deger

%>

 

Örnek 110 : Çerezlere Değer Atamak.

 

Bu şekilde “degisken” isimli cookiemize bir değer atamış olduk.

 

Kaydedilmiş bir cookieyi asp programcığı ile alıp bir değişkene atamak için ise,

 

<%

deger = Request.Cookies(“degisken”)

%>

Örnek 111 : Çerezden Değer Okumak.

 

Görüldüğü üzere request nesnesini kullanarak değer isimli cookiemizi bir değişkene

atadık. Ve bu şekilde asp scriptimiz içerisinde istediğimiz gibi kullanabiliriz.

 

Cookieler alt anahtarlara bölünebilir. Yani bir diğer değişle alt kategorilere ayrılabilir.

Örnek vermek gerekir ise:

 

<%      

degisken = Request.Cookies(“deger”)(“altdeger”)

%>

Örnek 112 : Çereze Alt değer vermek.

 

Yukarıdaki örneğimizde değer kategorisine ait alt degeri değişkenimize aktardık. Bu

şekilde kullanılan Cookieler için alt anahtarlarını olduğunu belirtmek gerekmektedir.

Bunun için ise :

 

<%

degisken = Request.Cookies(“deger”).HasKey

%>

Örnek 113 : Çerezlerde Alt değer Kullanılacağını Belirtmek.

 

şeklinde bir tanımlama gerekmektedir.