Asp Ders Notları 2
 
ADROTATOR (Değişen Reklam Bannerları ):

Bu Componentimiz sayesinde, sayfamızda her girişimizde veya sayfayı her Refresh edişimizde değişen bannerlar koyabileceğiz.

Ayrıca her bannera ayrı ayrı link verebilecek, ve hatta hangi bannerın kaç defa gösterileceğini ayarlayabileceğiz... Hemen nasıl yapıldığını inceleyelim...

<%@ Language=VBScript Codepage="1254"%>

Kod Alanı:

<%
Set Reklam=Server.CreateObject("MSWC.AdRotator" )
banner=Reklam.GetAdvertisement ("Banner.txt" )
Response.Write Banner
%>

Banner.txt isimli txt dosyamız da aşağıdaki gibi olacaktır...

Redirect http:Rating.asp
width 423
height 53
border 0
*
Banner1.gif
http://www.massCars.com
MassCars
5

Banner2.gif
http://www.YemekTarifim.Com
Türkiyenin En Büyük Sanal Mutfağı
6

Banner3.jpg
http://www.EgitimCenter.Com
Türkiyenin En Büyük Sanal Dersanesi
1

Şimdi bu textimizde kullandığımız terimleri tanımlayalım.

WIDTH: Bu alana Bannerlarınızın Genişliğini gireceksiniz.
HEIGHT: Bu alana da Bannerlarınızın Yüksekliğini gireceksiniz.
BORDER: Bu alana o girerseniz Bannerlarınız çerçeve kullanmaz. Gireceğiniz 1 ve daha yüksek değerler, Bannerınıza çerçeve vermenizi sağlar.

İlk Satırda imajın adını ve yolunu yazıyorsunuz.

İkinci Satırda, Linkini
Üçüncü satırda ise imajın üzerine gelince çıkacak ALT yazısını.

Dördüncü satırdaki rakamlarımızın toplamı 10u verir. Bu rakamlar seçili bannerımızın 10 defada kaç kere gösterileceğini belirler...

Ama işin doğrusunu söylemek gerekirse ben bu yöntemi pek sağlıklı bulmuyorum. Çünkü bu bannerların üzerine geldiğimiz zaman, link olarak bize bir QueryString değeri verir.

Bu da bize yeniden bir sayfa yazmamızı ve txt dosyamızın başına Redirect adresi olarak bu sayfaya yönlendirme yapmamızı gerektirir. Ama ben Select Case yöntemiyle daha güzel bir ASP Scripti yazdım ve onu kullanıyorum.
Onun Koduda aşağıdadır. Tek şartı döngüsü 10 olduğu için 10 imajıda yerleştirmeniz gerkiyor. Yani diyelim ki elinizde 4 tane banner var.

Biri 3, biri 3, biri 2, ve diğer geri kalan da 2 kere gösterilecek. O zaman biz de bu bannerları sayısına göre yerleştiriyoruz...B en de 4 tane var. Ben de aynen anlattığım gibi yapacağım.

Atrıca bu scriptimiz text dosya kullanmıyor... Yani başka hiçbir dosyaya gerek duymuyor ve ayrıca AdRotator Nesnesi kullanmadığı için de Windows98de yani 98 PWSde de çalışıyor.

CONTENTROTATOR

Bu dersimizde de içerik çevirici özelliğini göreceğiz ASPnin. Bir sayfaya girdiniz ve sayfada bilgisayar reklamları var. Düşünsenşize her sayfaya girişinizde Bilgisayar dünyasıyla ilgili başka bir haber buluyorsunuz. Ne kadar ilginç değil mi?

İşte ben ASPnin bu özeeliğini bilmediğim zamanlar, vay be adamlar habire güncelliyor derdim. Ama işin aslı böyle değilmiş. Meğerse ASPde ContentRotator diye bir özellik varmış. İsterseniz hemen örneğini yaparak çalıştırarak öğrenelim...

Kod Alanı:

<%
Set Tip = Server.CreateObject("MSWC.ContentRotator" )
Response.Write Tip.ChooseContent("Content.txt" )
%>


Evet yazacağımız kod bu kadar. Önemli olan Content.txt adlı dosyamızda ne yazacağımız ve ne yapacağımız. Şimdi isterseniz Content.txt adlı dosyamızı inceleyelim...

%% #2// Fikra1
> LORD
> Bir ingiliz lordu karisini yatakta bir genc adamla basmis...onlari oyle
> gorunce kadina : -"sayin leydim bu yaptiginiz genel ahlaka sigmaz ben size guvenmistim,
> guvenimin sonsuza kadar surecegini tahmin ediyordum... bana bunu
> yapamamliydiniz....", diye yarim saat nutuk ceker. Ama sonunda dayanamaz
> ve yataktaki gence doner:
> - "Ve siz sevgili genc, en azindan ben konusurken durmak nezaketini
> gosterebilirdiniz.

%% #3// Fikra2
> GENÇ KIZ
>
> Genc kız genc asıgına telefon acmıs : * -Jean, demis, seni çok
> arzuluyorum, geceleri uyku uyuyamyyorum.Ne olur bu hafta sonu bize yemege
> gel.Seni annem babamla tanıstırayım.Sonra benim odamda ders calısıyor
> gibi yapar doya doya sevisiriz...
> * Jean ömründe hicbir kızla sevismemis, toy bir delikanli. Bir eczaneye
> gitmis.Babacan eczaciya :
> -Bu hafta sonu önce bir aile yemegi , pesinden atesli bir ask
> yaşayacagım, demis, o yuzden iyisinden iki kutu prezervatif istiyorum...
> Babacan eczacı kutuları vermiş, oglanın sırtını sıvazlayıp yolcu etmiş. *
> Jean hafta sonunda bir büyük buket çiçekle Françoisenın kapısını çalmış
> * Genç kız kapıyı açmış.Jeany dogrudan yemege almış. Delikanlı çok mahçup
> biçimde masaya oturmuş.Kızın ana babasının yüzüne şöyle bir baktıktan
> sonra başını önüne egmiş.Başlamış dua etmeye.Ancak dua bir türlü
> bitmiyor.Françoise sonunda dayanamamış, fısıltıyla :
> *-Ben senin bu kadar dindar oldugunu hiç bilmiyordum Jean, demiş...
> Jean adeta inlemiş : * -Ben de babanın eczacı oldugunu bilmiyordum..

%% #5// Fikra3
> LÜTFEN
> Diskoda bir güzel eğlendikten sonra delikanlı sevgilisini evine
> götürmüş. Kapıda tam ayrılacakları vakit oğlan bir elini duvara dayayarak
> kızcağızı kapı ile kendi arasına sıkıştırmış...
> - Bir kere öpücem!...
> - Olmaz, komşular görür...
> Derken tartışma uzamış. O sırada kapı açılmış, küçük kızkardeş gözlerini
> oğuşturarak kapıda belirmiş. Ablasına dönüp:
> - Babam diyor ki, demiş, öptürecekse öptürsün yoksa ben aşağı inip o
> herifi öyle bir öperim ki bir daha unutamaz...
> Hem söyle şuna abla, elini diafonun düğmesinden çeksin...

Gördüğünüz gibi text dosyamız oldukça basit bir yapıya sahip. Hemen incelemeye alalım... Sanırım size tek farklı görünen karakterler %% #2// Fikra1 karakterleridir sanırım. Hemen bunların ne olduğunu açıklayalım.
%% işaretleri her bir bölümü birbirinden ayırmak için kullanılıyor.

Hemen arkasından gelen #2// işareti ise sayfanın toplamda kaç kere gösterileceğini belirliyor. Örnekte sayfanın yüklenme oranı sayıların toplamıyla bulunur. Örneğimizde yüklenme toplamı 10ur. Mesela bu Fıkra #2// olduğu için sayfa 10 kere yüklenirse veya Refresh edilirse 2 kere gösterilecektir...

PAGE.COUNTER

Kod Alanı:

<%
Set MyPageCounter = Server.CreateObject("MSWC.PageCounter" )
MyPageCounter.PageHit
%>


Bu Web sayfası <%= MyPageCounter.Hits %> kez görüntülenmiştir.

REQUEST NESNELERİ
Request Objesi:
Request objesi bilgi toplamak amaçlı kullanılan bir objedir. Detaylı olarak anlatılacak olmasına rağmen bu obje içersinde (koleksiyon ) yer alan metotlara kısaca bakalım.
1-Querystring: Eğer gönderilen bilgi url içersinde bulunan dosya ismi ile birlikte taşınıyorsa başka bir ifadeyle bilgi formu metodundan "GET" ile gönderiliyor ise Querystring metodu bu bilginin elde edilmesi için kullanılır.

2-Form: Eğer bilgi Form içerisinde "POST" metodu ile gönderiliyor ise bilginin elde edilmesi için kullanılan bir metodudur.

3-Servervariables: Web server request ile ilgili bilgileri ( Http ServerVariables ) tutar. Bu bilgilere bu koleksiyon içerisinde ulaşmayı sağlayan bir metoddur.

4-Cookies: Eğer client browser server dan gelen cookileri ( çerez:text dosyaları ) kabul ediyor ise bu bilgi web server a cookie koleksiyonu içerisinde ulaşır.

5-ClientCertificate: Client Certificate dijital bir sertifikadır ve client ve web server arasında ulaşılan server ve client ın birbirini tanımlaması için kullanılır. Detaylı olarak ele alınacaktır.






QueryString Koleksiyonu
Querystring server a iletilen bilgi kümeciği metotlarından biridir. Bu iletişim browser ın adres hanesinde yer alan dosya adına "?" ve "&" işaretleri vasıtası ile bilgilerin eklenmesi suretiyle gerçekleşir. Genel kullanımı :filename.asp?kullanici=Mehmet şeklindedir.
Eğer daha fazla bilgi bir anda gönderilmek isteniyor ise bu "&" işareti kullanılarak;
filename.asp?kullanici=Mehmet &email=mehmet@dogus.edu.tr şeklinde gerçekleştirilir.
"&" işareti bilgilerin birbirinden ayrılmasını sağlar. Kullanıcı adı ve soyadını alan ve bunları Querystring metodu ile ilgili forma gönderecek bir form dizayn edelim. İlgili Html formu aşağıdaki gibi olmalıdır;
< form name=login Action=Querystring.asp metod="GET">
Lütfen Adınızı Giriniz: < input type="text" name"adi" > <BR>
Lütfen SoyadınızıGiriniz:< input type="text" name="soyadi" > <BR>
< input type="submit" value="login" >
< /Form >
Yukarıdaki kod adı soyadı alanları bulunan bir form elde etmemizi sağlar.
Bu Html kodu içerisinde yer alan input submit butonu < form action="Querystring.asp" metod= "GET" > bu kutucuklara girilen bilgileri action kısmında belirtilen Querystring.aspye "GET"metodu kullanılarak gönderilir. (Yani bilgiler browser ın adres hanesi kullanılarak iletilir. ) Bu bilgilere ulaşmak içinse Request in Querystring metodu aşağıdaki şekilde kullanılır.
Request. Querystring ("istek gönderen formdaki Html elemanının adı" ) bu genel kullanıma göre eğer biz "..." içerisine o formda yer alan bir kontrolün adını koyar, istek o input alanına girilmiş veriye ulaşırız, yani Request. Querystring ("adi" ) şeklinde bir kullanım "adi" adlı text boxa girilen veriye;
Request. Querystring ("soyadi" )şeklinde bir kullanım ise "soyadi" adı verilen textbox a girilen veriye ulaşmamızı sağlar. Eğer Response nesnesinin Write metodunu kullanırsak login formuna girilen verileri;
<%
Response.write Request. Querystring ("adi" ) & "<BR>"
Response.Write Request. Querystring ("soyadi" )
%>
şeklinde ekrana yazabiliriz.

Dikkat edecek olursanız "&" işareti "<BR>" Html etiketini formdan gelen adi verisine eklemek için kullanılmıştır. Bu da bize 1 satır aşağıya geçmemizi sağlar (satır beslemesi ) sağlar. Koleksiyon birden fazla değer ve değişkeni içerisinde bulunduran bir grup olarak tanımlanabilir. Eğer Querystring metodu kullanılarak gönderilen değişken (kontrol sayısı ) birden fazla ise bu bir koleksiyon oluşturuyor anlamı taşır. Eğer daha önceki notlarımızı hatırlayacak olursak koleksiyon oluşturan bilgi grupları veya dizin elemanları için kullandığımız özel bir döngümüz vardı. (FOR EACH....NEXT ) bu döngüyü Querystring için uygulanacak olursak ;
Kod Alanı:

<%
For Each eleman in Request. Querystring
Response.Write eleman & "......" & Request. Querystring(eleman )
Next
%>


şeklinde bir döngü ile bize Querystring ie gönderilen tüm elemanları ve bu elemanların değerlerini ekrana basabiliriz. Yukarıdaki döngü Request. Querystring ile oluşturulan her eleman için döngüyü tekrarlar.
Request. Querystring ("kontrol" ).count özelliği gönderilen elemanları saymak için kullanılır. Eğer bu sayı"o" a eşit ise herhangi bir bilgi gönderilmemiş demektir.
Şimdi değişik konularda başlıkların yer aldığı ve bu başlıklar arasından kullanıcının yaptığı seçimlere bağlı olarak bu konularda kendisine bilgi göndereceği mesajını ekrana basan bir ASP uygulaması oluşturalım. Kullanıcının seçim yapabileceği selectboxın yer aldığı Html formunu dizayn edelim:
< HTML >
< HEAD >
< TITLE > kitap başlıkları < /TITLE >
< /HEAD >
< BODV >
Aşağıdaki konu başlıklarından ilgilendiklerinizi seçiniz.
< FORM ACTION="responseQuerystring.asp" METHOD="GET" >
< Select size=3 name="Konular" MULTIPLE >
< OPTION > Bilgisayar < /OPTION >
< OPTION > Hikaye < /OPTION >
< OPTION > Şiir < /OPTION >
< OPTION > Roman < /OPTION >
< /select >
< input type= "submit" value= "Gönder >
< /FORM >
< /BODY >
< /HTML >
Şimdi bu formdan gönderilen verileri işleyen ASP kodunu oluşturalım:
Kitap istek formu : < BR >

<%
if Request. Querystring("Konular" ).count= 0 then Response.write "Herhangi bir konu seçmediniz."
ELSE
Response.write size seçmiş olduğunuz "&"< BR >
Response.Write Request. Querystring ("konular" )
Response.write "hakkında broşür yollayacağız. Teşekkürler"
END IF
%>
Kod Nasıl Çalışır:
İlk form basit bir html formudur. Selectbox butonun oluşturulması için kullanılmıştır. <select....multiple> yer alan multiple seçeneği CTRL tuşuna basılarak birden fazla seçim yapılmasına olanak tanır. ASP içersinde yer alan Request.Querystring("konular" ).count=0 şartı eğer hiçbir konu başlığı seçilmemiş ise devreye girer. Eğer kullanıcı formda seçim yapmış ise ELSE şartı devreye girer ve seçilen konu başlıkları ekrana yazılır.

FORM KOLEKSİYONU
Eğer form içerisinde gönderilen bilgiler POST metodu kullanılarak gönderilmiş ise bu bilgiler FORM koleksiyonu içerisinde yer alır. Bu bilgiler request .FORM kullanarak kontrol edilebilirler. Genel kullanımı:
Request. Form ("kontrol_adi" ) şeklindedir.
Form nesnesi içerisinde textbox dışında aşağıda ki elemanlarda bulunabilir. Bunlar:
• Textbox
• Checkbox
• Option Buttons
• Listbox ve türevleri
• Hidden Fields
• Text Areas
Tüm bu elemanların oluşturulması ile ilgili bilgileri herhangi bir HTMl öğreten siteden öğrenebilirsiniz. Formun POST metodu ile gönderilen bilgiler HTML veri akışı içerisinde kullanıcıya gönderilir, bilginin iletilmesi için browser ın adres hanesi kullanılmaz. Bir önceki örneği form koleksiyonu ile oluşturmak isteseydik ;
Request.Form ("Konular" ) şeklinde bir değişiklik yapmamız yeterli olacaktı.

CLIENTCERTIFICATE KOLEKSİYONU
Web browser, web server ile Secure (SSL ) bağlantısı üzerinden bağlantı kurmak istediğinde bu işlem dijital sertifikalar üzerinden sağlar. Bu dijital sertifika bağlantı yapılan web server ve organizasyon hakkında gerekli bilgileri taşır bu CA Certificate Authority olarak bilinir. Bu işlem bilgilerin güvenli bir bağlantı üzerinden aktarılmasını sağlar bilgi aktarımı SSL, Secure Sockets Layer protokolü üzerinden gerçekleştirilir. SSL, Http protokolünün daha güvenli hale getirilmiş bir varyasyonudur. En son versiyonu SSL 3.0/PCT 1 dir. (PCT: Private Communication Technology ) Clientcertificate de bir koleksiyon meydana getirir ve bu koleksiyona:
Kod Alanı:

<%
For Each Key in Request. ClientCertificate
Response.Write ( Key & " : " & Request.ClientCertificate (key ) & "<BR>" )
Next
%>


şeklinde ulaşabilirsiniz.
Bu koleksiyonda yer elemana ise ; Request. ClientCertificate (Key ) şeklinde ulaşabilirsiniz. İlerleyen bölümlerde ClientCertificate ile ilgili daha ayrıntılı bilgilere ve örneklere yer verilecektir.
Request Nesnesinin Özellikleri ve Metotları
Request nesnesi koleksiyonun dışında da bazı özel özellik ve metotlara sahiptir. Bu özelliklere ve metotlara göz atalım .
TotalBytes Özelliği
Bu özellik browser tarafından gönderilen bilginin toplam olarak kaç byte olduğunu bulmak için kullanılır. Aşağıda ki kod gönderilen bilginin kaç byte olduğunu ekrana yazar
Kod Alanı:

<%
Response.Write "Göndermiş olduğunuz Bilgi:"
Response.Write Request.TotalBytes & "dır"
%>





BinaryRead Metodu

BinaryRead metodu POST ile server a gönderilen bilgilerin alınması için kullanılır. Form ve querystring metodlarında farklı olarak text dışında veri gönderildiğinde bu metod bu verilerin okunması için kullanılır. Daha önce anlatılan TotalBytes özelliği bu metoda parametre olarak sunulur. Aşağıda verilen kodu inceleyelim
Kod Alanı:

<%
Dim Dosya_boyutu, Oku
Dosya_boyutu=Request.Totalbytes
Oku=Request.BinaryRead(Dosya_boyutu )
For i= 1 to Dosya_boyutu
Response.Write MidB (oku, i, 1 )
Next
%>


MidB , Mid fonksiyonuna benzeyen fakat düzensiz oluşturulmuş bilgileri oluşturulmuş bilgileri okumak için kullanılan bir text fonksiyonudur. (Aslında N boyutlu dizi haline getirilmiş veriler demek daha doğru olur. ) Bu fonksiyon döngü içerisinde her defasında bir karakter okunur ve bu karakter ekrana yazılır.
ServerVariables (Server Değişkenleri )
Request nesnesinin bir diğer kolleksiyonu, bizim kendi Web Serverımızın o anda çalışmakta olan ASP sayfası için oluşturduğu ortamın değişkenleridir. Bunların arasındaziyaretçinin Browserına ilişkin bilgiler de vardır. Önce þu kısa ASP sayfasını çalıştırarak kendi Serverımızın şu andaki değişkenlerini görelim; sonra bunları ayrıntılı ele alalım
Kod Alanı:

<HTML>
<HEAD>
<TITLE>HTTP ServerDegişkenleri Kolleksiyonu</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY BGCOLOR=white>
<CENTER>
<H2>HTTP Server Değişkenleri Kolleksiyonu</H2>
</CENTER>
<TABLE BORDER=1>
<TR><TD><B>Değişkenin adı</B></TD> <TD><B>Değeri</B></TD></TR>
<% For Each key in Request.ServerVariables %>
     <TR>
     <TD><% = key %></TD>
     <TD>
     <%If Request.ServerVariables(key ) = "" Then
          Response.Write " "
     Else          
          Response.Write Request.ServerVariables(key )
     End If
     Response.Write "</TD>"%>
     </TR>
<% Next %>
</TABLE>
<p>
Sizin Hostunuzun adı:<B> <%=Request.ServerVariables("HTTP_HOST" )%></B>
</BODY>
</HTML>

Bu sayfayı çalıştırdığımız zaman görüntülenecek tabloda, Bir HTTP Serverın sayfasını çalıştırdığı anda oluşturduğu ortama şekil veren bütün değişkenleri göreceksiniz. Bu değişkenleri programlama yoluyla değiştiremeyiz; sadece okuyup, yararlanabiliriz. HTTP Server Değişkenleri Kolleksiyonunun elemanları şöyle sıralanır:

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 Servera kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan parola
AUTH_TYPE     Kullanıcı Web Servera kullanıcı adı/parola yöntemiyle bağlanabiliyorsa, kullanılan yetkilendirme yöntemi
AUTH_USER     Kullanıcı Web Servera 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 ASPnin göreli yolu ve adı
PATH_TRANSLATED     Çalışmakta olan ASPnin gerçek yolu ve adı
QUERY_STRING     İstemcinin gönderdiği bilgi kümesi
REMOTE_ADDR     İstemcinin Hostunun (ISSinin ) IPsi
REMOTE_HOST     İstemcinin Hostunun (ISSinin ) adı
REMOTE_USER     İstemcinin gerçek adı
REQUEST_METHOD     İstemciden bilgi isteme yöntemi (GET veya POST )
SCRIPT_NAME     Çalışmakta olan ASPnin adı
SERVER_NAME     Sunucunun 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ığı HTTPnin sürümü
SERVER_SOFTWARE     Server programının adı ve sürümü
URL     Şu anda geçerli URL


RESPONSE NESNELERİ

Bu başlık altında her iki objeyi daha detaylı olarak inceleyeceğiz. Bu objeler browser ve web server arasındaki iletişiminin sağlanması için kullanılırlar. Şimdi bu detaylara ayrıntılı olarak bakalım.
Write Metodu:
Response objesinin en sık kullanılan metodudur. Write metodu ASP sayfamızda bilgileri görüntülemek için kullanılır. Genel kullanımı;
Response.Write [değer] şeklindedir.
<%
Yazılacak_text="Bugün günlerden ne?"
Response.Write yazılacak_text
%>
Şeklinde bir kullanım browser ekranına "Bugün günlerden ne?" diye bir mesaj yazar. Asp script bildiğiniz gibi <%........%> script sınırlayıcıları arasına yazılır. Bu kullanımın iki farklı şekli vardır. Eğer html tagları içerisinde herhangi bir değişkenin taşıdığı bir değeri görüntülemek istiyorsak <%=değer%> daha uygun bir kullanım olacaktır. Fakat bu kullanımın dezavantajı sadece 1 satırlık bir kodlamaya izin vermesidir. Yani;
<%=değer
Response.Write "Bu kullanım hata verir."
%>
Şeklinde bir kullanım yanlıştır. Dolayısıyla birden fazla satır ASP kodlaması gereken durumlarda ASP kodunu <%.......%> satırları arasına yazmak daha uygun olacaktır. Aşağıdaki örneği inceleyelim:
<%
text1= "Merhaba"
text2= "Yeni ASP programcıları"
Response.write text1 & text2
%>
Response.write text1 & text2 kullanımı iki farklı değişken içerisinde tutulan stringleri birleştirerek tek satırda yazmak için kullanılmıştır. "&" işareti iki değişkeni birleştirmek için kullanılır. Response.write bir işlemin sonucu ekrana yazmak içinde kullanılabilir. Aşağıdaki örneği inceleyelim;
<%
sayı1= 24
sayı2= 8
Response.write sayı1/sayı2
%>
Şeklinde bir kullanım ekrana 3 yazılmasına neden olur. Çünkü sayı1 /sayı2 yani 24/8=3 dür, ve response.write 3 şeklinde bir kullanıma eşdeğerdir. Bir formdan bize iletilen bilgileri Request objesini kullanarak alabilir ve gene bu bilgiyi Response objesinin write metodunu kullanarak ekrana yazabiliriz.

<%
Response.Write (Request.QveryString("text1" ) )
%>

şeklinde bir kullanım bize istek gönderen formdaki text1 adlı değişkeninin değerini ekrana yazar.
Buffer:
Buffer özelliği response ile oluşturulan Html Data akışının html dosya oluşturulması tamamlandıktan sonra veya her satır iletildiğinde gösterilmesi ile ilgili bir özelliktir. Default değeri "on" dur bu değere false u set edecek olursak ;
Response.Buffer=False şeklinde bu işlem yapılabilir.
Clear:
Response.Clear metodu buffer (tampon ) edilmiş tüm html bilgisinin silinmesi için kullanılır. Kullanımı: Response.clear şeklindedir. Fakat unutulmaması gereken nokta eğer Response.Buffer= false olarak set edilmiş ise Run-time (çalışma zamanı ) hataya neden olur.
End:
End metodu web server işlemi durdurmasını ve Response.End noktasına kadar oluşturulmuş Html datanın gönderilmesini sağlar. Kullanımı :
Response.End şeklindedir
Expires:
Expires özelliği dakika cinsinden sayfanın browser tarafından hafızada ne kadar tutulacağı ile ilgili bilgiyi set etmek için kuyllanılır. Eğer kullanıcı aynı sayfaya Response.Expires ile belirlenen zamandan daha önce geri dönerse sayfanın hafızadaki versiyonu kullanıcıya gösterilir. Kullanımı : <% Response.Expires=dakika %> şeklindedir. Eğer bu değere "0" set edilirse ( Response.Expires=0 ) sayfaya her geri dönüldüğünde sayfa yeniden yüklenir.


ExpiresAbsolute:
ExpiresAbsolute tıpkı Expire özelliğibne benzer olarak fakat belirtilen sürenin dakika değil tarih veya saat olacak şekilde set edilmesi suretiyle sayfanın geçerlilik süresinin belirlenmesi için kullanılır. Kullanımı :
<% Response.ExpiresAbsolute=#tarih# %> şeklindedir.
Redirection:
Kullanıcıyı bir Asp sayfasından diğerine yönlendirmek için kullanılan bir metoddur. Bu metodun yerini alan 2 yeni metod olan server.transfer ve server.Execute metodlarına daha sonra ayrıntılı olarak göz atacağız. Redirection iel ilgili olarak bilmemiz gereken bazı önemli noktalar vardır. Eğer http header client a gönderilmil ise Response.redirection hataya neden oluyur . bu hatanın önüne geçmek için response.Buffer özelliğini true ya set etmek sureiyle ve herhangi bir noktada response.clear ı kullanarak response.Redirection in hata vermesini engelleyebiliriz. Response.Redirectionun genek kullanımı:
Response.Redirection("yönlendirilecek_sayfa" ) şeklindir.

Server. Execute ve Server.Transfer
Server. Execute ve Server.Transfer bir ASP sayfası içersinden başka bir sayfanın çalıştırılması veya o sayfanın içeriğinin aynı sayfa içerisinde gösterilmesi için kullanılır. Aralarında ki tek fark ise Server. Execute kullanıldığında hedef sayfa çalıştırıldıktan sonra orijinal sayfa nın işletilmesine devam edilmesine rağmen Server.Transfer kullanıldığında orijinal sayfaya geri dönülmez. Page1 , Page2 veMainpage adı altında 3 sayfamın olduğunu düşünün

ÇEREZLER

Siteye giriyordunuz. Adam size "sayfayı kişiselleştir" diye bir link koymuş. Tıklayıp içinizi döküyorsunuz. Siteyi bir sonraki ziyaretinizde site size adınıza hitaben "merhaba koçum, seni tanıyorum, bana kendini anlatma, çok iyi bilirim ben seni ... ismin şu, sevdiğin kalem markası Rotring, başın ağrıyınca önceden Novalgin alırdın şimdi modaya uyup Aspirin Forte.. monitörün philips marka ve sen simit şeklindeki power düğmesine gıcık oluyorsun ... haa bir de bu siteyi 2. ziyaretin ... nerden bildim ama... hahaha" türünden şaklabanlıklar yapıyor. Peki bunu nasıl beceriyor? Hepiniz çerezlerle olduğunu biliyorsunuz.

ASP ile istemci bilgisayarlara çerez yollamak çok basit bir iştir. Gerçekten çok basit. ASP nin yerleşik delikanlılarından RESPONSE nin bu iş için özel bir metodu var: COOKIES . İstemciye çerez yollamak için bu metodla birlikte anahtar değerler (bir veya iki ) gönderiyoruz. (bir ayrıntı: ASP de iki anahtar sadece cookies kolleksiyonunda kullanılıyor ). Şimdi örnek kodu inceleyelim:


Response.cookies("kabuk" )= "Evet, kabuk"
Response.cookies("kabuklarim" )("adi" ) = "Mucit"
Response.cookies("kabuklarim" )("sevdigi_icecek" ) = "Kızılcahamam Maden Suyu ve Sodası"
Response.cookies("kabuklarim" )("medeni_durumu" ) = "Bekar!"
Response.Cookies("kabuklarim" ).Expires = Now( ) + 90
Peki çerezi yolladık tarayıcıya. Yani kabukları. Peki bu kabukları görmek istediğimiz zaman ne yapmamız gerekiyor. İşte o zaman ASP nin diğer delikanlı nesnesi REQUEST talip oluyor göreve. Çünkü bir şeyleri talep etmek onu görevi. Biz de ona bir emir vereceğiz. "Çerezler arasından şu anahtardaki değeri bana bir getiriver bakayım" denildiği anda size o değeri getirecektir. Bu metodu kullanmak, response ile çerez yollamaya çok benzer. Ancak bir fark vardır. Response de ilgili anahtara atama yapılır, burada ise request zaten bize bir değer getirir, biz de bu değeri işimize geldiği gibi kullanırız. Aşağıda REQUEST ile çerezden bilgi almayı görüyorsunuz.
Adim = Request.cookies("kabuklarim" )("adi" )
ne_icerim = Request.cookies("kabuklarim" )("sevdigi_icecek" )
medeni_halim = Request.cookies("kabuklarim" )("medeni_durumu" )
Response.Write Adim & " / " & ne_icerim & " / " & medeni_halim
sayfadaki çıktı: Mucit / Kızılcahamam Maden Suyu ve Sodası / Bekar!
İşte bu örneklerde çerezle bilgi yollama ve de çerezden bilgi alma tekniğinin ne kadar kolay olduğunu görüyorsunuz.
<html>
<head>
<title> KİŞİSEL ZİYARET SAYACI </title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<meta name="Generator" content="EditPlus">
<meta name="Author" content="Mucit">
</head>
<body bgcolor="#FFFFFF">
<%
ziyaret = Request.cookies("sitem" )("ziyaret" )
If ziyaret = "" Or Not Isnumeric(ziyaret ) Then
Response.cookies("sitem" )("ziyaret" ) = "0"
Response.Cookies("kabuklarim" ).Expires = Now( ) + 365
Response.Write "Siteye ilk defa geldiniz. Saolun. Bir daha gelin haaa.."
Else
ziyaret = ziyaret + 1
Response.cookies("sitem" )("ziyaret" ) = ziyaret
Response.Cookies("kabuklarim" ).Expires = Now( ) + 365
Response.Write "Siteye " & ziyaret & ". gelişiniz, aferin hep gelin haa.. "
End If
%>
</body>
</html>
 
 
  Bugün 96 ziyaretçi (114 klik) buradaydı  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol