Next
Bu iki kodu, miniform_post.asp’ye katabilir misiniz? (Ortaya çıkartacağınız örneği bu kitapçığın örnekleri arasındaki miniform_multi.asp ile karşılaştırabilirsiniz.)
Parola İle Sayfa Koruma
“Internet’te gizlilik olmaz!” ilkesine rağmen, bazen öyle sayfalarımız olur ki, bunların içeriğini bütün Internet ziyaretçilerinin görmesini istemeyebiliriz. Örneğin derneğimizin veya grubumuzun telefon numaraları ve elektronik posta adreslerini gösteren sayfamıza sadece grup üyelerinin ulaşmasını arzu edebiliriz. Bir Web sitesinin herhangi bir sayfasını ziyaretçilerden gizlemek için sayfanın açılmasını belirli bir şartın yerine gelmiş olmasına, mesela ziyaretçinin bir Form aracılığıyla bize doğru parolayı göndermesine bağlayabiliriz.
Bu tür sayfa gizleme yollarını istemci-tarafında çalışan bir programla yapmak mümkündür; ancak sayfa gizlemenin mantığına aykırıdır. sözgelimi bir Form’da parola alanına girilecek bilginin gerçek parola ile karşılaştırılmasını bir Script fonksiyonu ile yapmaya kalkarsak, ziyaretçinin kaynağı görüntülemesi halinde ziyaretçinin girdisi ile parolayı karşılaştıran Script, ve tabiî bizim kıymetli parolamız, ziyaretçi tarafından öğrenilecektir. Oysa ASP kodları ile gizlediğimiz parolanın ziyaretçiye görünmesi imkansızdır; çünkü ASP kodları hiç bir zaman ziyaretçiye gönderilmeyeceği için parola sınayan program da ziyaretçiye gidemeyecekti
--------------------
Önce şu kodu, parola.asp adıyla kaydedelim:
<%@ LANGUAGE="VBSCRIPT" %>
<%
Response.ExpiresAbsolute = Now() - 1 'Sayfanın yedeklenmesini önleyelim
FormParola = ucase(trim(request.form("FormParola")))
If FormParola <> "PAROLA" Then
%>
<HTML>
<HEAD>
<TITLE>ASP ILE PAROLA</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="#ccffff" text="black" link="navy" vlink="purple">
<DIV align="center">
<FORM action="parola.asp" method="POST">
<h2>Ana sayfaya girmek için parolayı yazınız (Mesela, PAROLA) ?</h2>
*<input type="password" name="FormParola" size="10"><br><br>
*<input type="submit" value="Girebilir Miyim?">
</form>
</div>
</body>
</html>
<% Else %>
Şimdi ana sayfaya girmiş oldunuz..
<% End If %>
Şimdi kodumuzu ayrıntılı indereleyebiliriz. Önce, bu sayfanın ziyaretçinin Browser’ı tarafından ziyaretçinin bilgisayarında yedeklenmesini önlediğimize dikkat edin: Bunu Response nesnesinin .Expries metodunun farklı bir türü ile yapıyoruz. .ExpiresAbsolute sadece .Expires metodundan farklı olarak, bizden bir değer ister. Bu değerin zaman olarak verilmesi gerekir. Burada VBScript’in o andaki zamanı belirten Now() fonksiyonu ile yapıyoruz ve bu fonksiyonun verdiği değerden (yani o andaki saatten) 1 saat çıkartıyoruz. Böylece sayfanın geçerliği çoktan dolmuş oluyor. Browser, bu ifadeyi gördüğü anda sayfanın daha sonra başvurulmak üzere bir kopyasını saklamayacaktır. Bunu neden yapıyoruz? Diyelim ki parolayı doğru bilen bir ziyaretçi kullandığı bilgisayarın başından kalktı ve yerine başka bir kullanıcı geçti. Bu kişinin Browser’ın Yenile düğmesini tıklaması halinde bizim özene-bezene gizlediğimiz sayfa yeniden görüntülenecektir. Oysa Browser’a bu sayfanın artık geçerli olmadığını bildirmekle, yenilenme işleminin Cache bellekten (ziyaretçinin bilgisayarında sabit diskte kaydedilen kopyadan) değil de, mutlaka Server’dan yapılmasını istiyoruz.
Sayfamız açılırken, (kodumuzun dört ve beşinci satırında) kendi içerdiği formda bilgi olup olmadığını sınıyor. Bunu formdaki formParola isimli INPUT alanının değerini atadığımız değişkenin içeriğini parola olarak seçtiğimiz kelime karşılaştırarak yapıyoruz. Eğer bu değişken (buradaki örnekte “PAROLA” kelimesine) eşit değilse, yani parola yanlış veya boşsa If sorgusu olumlu sonuç verecek ve program devam edecektir. If sorgusu yanlış sonuç vermiş olsaydı, yani ziyaretçi Form’a bilgi girmiş ve bu bilgi bizim karşılaştırmayı yaptığımız kelimeye eşit olmuş olsaydı, program ELSE ifadesine atlayacaktı. Programın devamı formu oluşturmaktadır; ELSE ifade ise formu atlamakta ve ziyaretçinin Browser penceresine “Şimdi ana sayfaya girmiş oldunuz” cümlesini yazdırmaktadır. Tabiî gerçek bir uygulamada bu cümlenin yerinde gerçek bir sayfanın ögeleri yer alacaktı. Bu yöntemi uygularken sayfanın VBScript’nin End If ifadesiyle bittiğine dikkat edin.
Dinamik İçindekiler Sayfası
Internet sitemizin sayfaları genellikle çok özenilmiş, cicili-bicili, albenisi olan, görsel odak noktalarının oluşmasına dikkat edilmiş tasarımlar olur. Fakat bazen, önemli olan sadece bir dizindeki bütün HTML ve ASP belgelerinin adlarını ve başlıklarını liste halinde ziyaretçiye sunmaktır. Böyle bir sayfada da tasarımın görsel ilkelerine dikkat edilebilir. Fakat burada önemli olan, sayfanın kendi kendisini inşa etmesi ve sayfanın bir dizinin içindeki tüm dosyaları zyaretçiye listeyen bölümünün otomatik olarak güncellenmesidir. Bunu, bir HTML sayfası oluşturan ASP programı olarak tasarlayabiliriz. Aşağıdaki biraz uzunca kodu, menu.asp adıyla kaydedin veya bu kitapçığın örnek dosyaları arasında bulun:
<%@ LANGUAGE=VBSCRIPT %>
<%
Server.ScriptTimeOut = 300 *'Server'a daha çok zaman tanımak için
strMenuSayfaURL = "/menu.htm" 'oluşturacağımız sayfanın yolu
strListKlasor = "/" * * *'içindekileri bulacağımız dizin
%>
<HTML>
<TITLE>ASP ILE MENU OLUSTURMA</TITLE>
<META http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<META http-equiv="Content-Type" content="text/html; charset=windows-1254">
<META http-equiv="Copyright" content="Alex Homer">
<BODY>
<%
Response.Write "<P>Menü sayfası oluşturuluyor: " & strMenuSayfaURL & " ...</P>"
'menü sayfası olacak düz yazı dosyasını oluşturalım
Set objFSO = CreateObject("Scripting.FileSystemObject")
strDosyaAdi = Server.MapPath(strMenuSayfaURL)
Set objMenuSayfa = objFSO.CreateTextFile(strDosyaAdi, True) 'dosyanın üstüne yaz
'menü sayfasının başlık bölümünü yazalım
objMenuSayfa.WriteLine "<HTML><BODY><P><B>Dosyaların listesi</B></P>"
'belirtilen dizindeki dosyaların listesini içeren kolleksiyonu oluşturalım
Set objKlasor = objFSO.GetFolder(Server.MapPath(strListKlasor))
Set kolDosyalar = objKlasor.Files
'Her bir dosyanın başlığını okuyarak listemizi yapalım
For Each objDosya in kolDosyalar
'dosya adının uzantısı ASP ve HTM olanları ayıralım
strDosyaTuru = objFSO.GetExtensionName(objDosya.Name)
If (strDosyaTuru = "asp") Or (Left(strDosyaTuru, 3) = "htm") Then
'dosyanın tümünü okuyup bir String'de tutalım
Set objOku = objDosya.OpenAsTextStream(1) 'okumak için
strIcerik = objOku.ReadAll
objOku.Close
'içinden başlık bölümünü alalım
strBaslik = ""
intBaslangic = Instr(UCase(strIcerik), "<TITLE>") + 7
intSon = Instr(UCase(strIcerik), "</TITLE>")
If (intBaslangic > 0) And (intSon > intBaslangic) Then
strBaslik = Trim(Mid(strIcerik, intBaslangic, intSon - intBaslangic))
End If
If Len(strBaslik) = 0 Then strBaslik = "Adsız sayfa '" & objDosya.Name & "'"
'Menü sayfası için metni oluşturalım
strBuDosyaURL = strListKlasor & objDosya.Name
strKopru="<A HREF=" & Chr(34) & strBuDosyaURL & Chr(34) & ">" & strBaslik & "</A><BR>"
objMenuSayfa.WriteLine(strKopru)
End If
Next
'Menü sayfasının son bölümünü yazalım
objMenuSayfa.WriteLine "</BODY></HTML>"
objMenuSayfa.Close
Response.Write "<P>Menü sayfası oluşturuldu.</P>"
%>
<P><A HREF="<% = strMenuSayfaURL %>">Menü sayfasını aç</A></P>
</BODY>
</HTML>
Programın daha öncekilere göre uzun oluşu, Dosya Sistemi (FileObject) Nesnesini kullanarak oluşturacağı menu.htm dosyasının içeriğini sağlamak için verdiğiniz dizinde bulunan ve dosya adı uzatması .htm ve .asp olan bütün dosyaların içinde <TITLE>..</TITLE> etiketini aramasından kaynaklanıyor. Programın yazarı Alex Homer’in bütün değişken adlarının önünde, değişkenin türünü belirten ön-ekler kullandığına dikkat edin. Böylece nesneleri (obj), sayısal (int) ve kolleksiyon (kol) değerlerden ayırmamız kolaylaşıyor.
Programı çalıştırdığımız zaman, Browser penceresinde menü sayfasının oluşturulduğuna ilişkin mesaj belirliyor; ve işlem tamamlandığında da oluşturulan menu.htm sayfasının kö
prüsü veriliyor. Bu kö
prüyü tıkladığımızda ise programın beşinci satırında strListKlasor = "/" ifadesiyle verdiğimiz dizinin içindeki bütün HTML ve ASP dosyalarının başlığını, bu dosyalara kö
prü verilmiş olarak görürüz.
İsterseniz, strListKlasor değişkeninin değeri olarak, sözgelimi “/html/” gibi, kendi Web Server’ınızdaki diğer herhangi bir dizinin adını da verebilirsiniz. Bunu yaparken dizin adının sonuna bölü işareti koymayı unutmamak gerekir. Bu program böyle bağımsız olarak çalıştırılabileceği gibi, bir çerçevenin (Frame) içinde çalıştırılabilir ve sonuçları, başka bir çerçevenin içinde görüntülenebilir. Bu programın “İçindekiler” sayfasını hazırladığı dizine ne kadar yeni dosya koyarsanız koyun veya mevcut dosyaları çıkartırsanız çıkartın, ne zaman bu programı çalıştırırsanız, İçindekiler listesi dinamik olarak mevcudu yansıtacaktır.
Gecikme Bildirme Sayfası
Yukarıdakı örneği birlikte uyguladıysak, ASP programına İçindekiler listesini çıkartması için verdiğimiz dizinin içerdiği dosya sayısına bağlı olarak, programın çalışması epey uzun süre alacaktır. 20 saniyenin üzerinde beklemenin bir yüzyıla yakın etki yaptığı günümüz Internet ziyaretçisi için bu süre çok uzun görünebilir. Ziyaretçimize, sözgelimi Browser programının donmadığını, veya Internet bağlantısının kesilmediğini belirtebilmek için, “Lütfen bekleyiniz!” mesajı vermek yerinde olabilir. Yukarıdaki örnekte bunu aynı sayfa içinde yapma imkanımız vardı; çünkü programımız tabir yerinde ise ziyaretçiyi bu sayfadan alıp, başka bir sayfaya götürmüyordu.
Oysa Web uygulamamızın akış planı öyle gerektirebilir ki, ziyaretçimizin bir talebini karşılayabilmek için ona “Lütfen bekleyiniz!” mesajını ne hareket ettiği, ne de gittiği sayfada veremeyiz. Bunun için bir “ara” sayfa gerekebilir; bir tür “Lütfen bekleyiniz!..” sayfası.
Bu örnekte böyle bir sayfa yapacağız; ancak bu amacımızı tek sayfa karşılamayacağı için, ortaya iki sayfa çıkartacağız. Şimdi şu kodu bekle01.asp adıyla kaydedin:
<% Response.Buffer = True %>
<HTML>
<% mesaj = Server.URLEncode("Arzu ettiğiniz iş yapılıyor.. Lütfen bekleyiniz") %>
<% Response.Redirect ("bekle02.asp?BEKLE_SURE=3&BEKLE_MESAJ=" & mesaj & _ "&GONDER_URL=index.htm") %>
<HEAD>
<TITLE>ASP ILE BEKLETME 01</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>
</BODY>
</HTML>
Burada ASP kodunun tümü işlemeden, ortaya çıkan HTML’in ziyaretçinin Browser’ına parça parça gönderilmesini önlemek amacıyla Response nesnesinin .Buffer metodunun True (doğru) olarak belirlendiğini görüyorsunuz. Programın kullanacağı mesajın, mesaj adlı değişkene atandığına dikkat edin. Bu sayfanın tek işlevi ise Response nesnesinin .Redirect metodu ile bekle02.asp sayfasını çağırmaktan ibaret. Başka bir deyişle bekle01.asp, gerçekte Browser’ın yüzünü bile göremeyecektir!
Biraz sonra kendisine üç değişken verilmesini bekleyen bekle02.asp programı yazacağız. Nitekim bekle01.asp’nin içinde üç değişken değeri belirleniyor; ve bunlar bekle02.asp’ye URL-GET metodu ile “yazılıyor.” Burada GET metodu ile bir bir sayfaya veri gönderme tekniğini hatırlayalım. Bir Form’un Server’a veri gönderme metodu GET ise, Form’dan (veya sayfadan URL yoluyla) derlenen verilerin “değişken=değer” çiftleri halinde ve çiftlerin arasında & işareti konularak gönderilir. Bu yöntemi, HTTP yoluyla Browser nasıl kullanıyorsa, biz de istediğimiz anda kullanabiliriz. Burada;
bekle02.asp?BEKLE_SURE=3&BEKLE_MESAJ=" & mesaj & _ "&GONDER_URL=index.htm”
şeklindeki ifade de sayfa adından sonra konan soru işareti, Server’a bu bilgi kümesinin bu sayfaya iletilmesi komutunu vermenizi sağlar; bir bakıma Server’a “Şu bilgileri al; bekle02.asp sayfasına ver!” demiş oluyoruz. Bu bilgiler hatırlayacaksınız, Server’da Request nesnesinde tutulur; eşittir işaretinin önündeki kısım değişken, arkasındaki kısım ise değer sayılır.
Dedik ki: bekle02.asp kendinise üç değişken verilmesi beklemektedir. Bunu sağlayan nedir? Resquest nesnesinden alınıp, bu sayfanın içindeki değişkenlere atanan üç değer bulunması. bekle02.asp’yi de yazalım:
<%@ LANGUAGE="VBSCRIPT" %>
<%
BEKLE_SURE = Request("BEKLE_SURE")
GONDER_URL = Request("GONDER_URL")
BEKLE_MESAJ = Request("BEKLE_MESAJ")
%>
<html>
<head>
<META http-equiv="content-type" content="text/html; charset=ISO-8859-9">
<META http-equiv="Content-Type" content="text/html; charset=windows-1254">
<META http-equiv="Refresh" content="<% =BEKLE_SURE %>; URL=<% =GONDER_URL %>">
<title>ASP ile Bekletme</title>
</head>
<body color="#FFFFFF">
<font face="Arial">
<p align = "center"><strong><% =BEKLE_MESAJ%></strong> </p> </font>
</body>
</html>
Daha önce yazdığımız bekle01.asp, ziyaretçiyi bekle02.asp’ye yönlendirirken ona üç “değişken=değer” çiftti gönderiyor; bekle02.asp bunları Request nesnesinden alarak, kendi değişkenlerine atıyor. Bu üç değişkenini inceleyelim.
Ziyaretçinin bekleme süresince Browser penceresinde göreceği mesaj, BEKLE_MESAJ değişkeninde yer alıyor;
Bu mesajı görüntülendiği sayfanın ziyaretçinin Browser’ında kalacağı süreyi BEKLE_SURE değişkenin değeri belirliyor:
Bu sayfanın yerini alacak olan hedef sayfa veya ziyaretçinin Browser’ına gönderilecek yeni sayfanın adresini, GONDER_URL değişkeni belirliyor.
Bu programları çalıştırdığınızda ziyaretçinin Browser’ında üç saniye süreyle “Arzu ettiğiniz iş yapılıyor.. Lütfen bekleyiniz!” yazısı görüntülenecek; daha sonra Browser’a index.htm sayfası gönderilecektir. Bu iki programı kendi ihtiyaçlarınıza uyarlamak isterseniz, sözgelimi bir veritabanının güncellenmesi sırasında veya benzeri bir muhtemel gecikme durumunda, ziyaretçiye durumu bildirmek için, kö
prüyü bekle01.asp’e verebilirsiniz; asıl hedef URL’i ise bekle01.asp’de verebilirsiniz.
Form Değerlerini Yakalayalım
Bir veritabanından çektiğimiz verilerle, Form etiketi içinde kullanabileceğimiz ve ziyaretçinin ya metin girmesine ya da seçim yapmasına imkan veren kutuları, seçenekleri nasıl doldurabileceğimize ilişkin bir örneği birinci kitapçıkta görmüştük. Burada şimdi bir Form’dan gelen verileri nasıl değişkenlere atayacağımızı ve bunları nasıl kullanacağımızı ele alalım.
Bu amaçla iki sayfa hazırlayacağız: birincisi içinde bir çok tercihler bulunan formlar olan bir HTML dosyası, diğeri ise bu Formun değerlerini alarak, kullanılır hale getirecek bir ASP programı olacak.
Önce FormOrnek.htm adlı şu dosyayı kaydedelim:
<HTML>
<HEAD>
<TITLE>Form Ornegi</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>
<H4>Birinci Form</H4>
<FORM ACTION="FormOrnek.asp?HangiForm=1" METHOD="POST">
<INPUT TYPE="Text" NAME="MetinGir" VALUE="Mesajınızı buraya yazınız" SIZE="30" MAXLENGTH="75"><BR>
<INPUT TYPE="Password" NAME="ParolaAlani" SIZE="30" VALUE="parola"><BR>
<TEXTAREA NAME="MetinAlani" COLS="30" ROWS="3" WRAP="VIRTUAL">
Buraya istediğiniz yazıyı yazabilirsiniz...</TEXTAREA><P>
<INPUT TYPE="Submit" VALUE="Gönder"> <INPUT TYPE="RESET" VALUE="Sil">
</FORM>
<HR>
<H4>İkinci Form</H4>
<FORM ACTION="FormOrnek.asp?HangiForm=2" METHOD="POST">
<TABLE BORDER = 0><TR><TD><INPUT TYPE="Radio" NAME="Radyo" VALUE="Tercih1" CHECKED>Radyo Düğmesi Tercih 1<BR>
<INPUT TYPE="Radio" NAME="Radyo" VALUE="Tercih2">Radyo Düğmesi Tercih 2<BR>
<INPUT TYPE="Radio" NAME="Radyo" VALUE="Tercih3">Radyo Düğmesi Tercih 3</TD>
<TD width=30> </TD>
<TD><INPUT TYPE="Checkbox" NAME="IsaretKutusu" VALUE="Isaret1">İşaret Kutusu 1<BR>
<INPUT TYPE="Checkbox" NAME="IsaretKutusu" VALUE="Isaret2">İşaret Kutusu 2<BR>
<INPUT TYPE="Checkbox" NAME="IsaretKutusu" VALUE="Isaret3">İşaret Kutusu 3</TD>
</TR></TABLE><BR>
<INPUT TYPE="Submit" VALUE="Gönder"> <INPUT TYPE="RESET" VALUE="Sil"></FORM>
<HR>
<H4>Üçüncü Form</H4>
<FORM ACTION="FormOrnek.asp" METHOD="GET">
<INPUT TYPE="Hidden" NAME="HangiForm" VALUE="3">
<SELECT NAME="SecmeListesi" SIZE="1">
<OPTION VALUE="ListeTercih1">Liste Tercih 1
<OPTION VALUE="ListeTercih2">Liste Tercih 2
<OPTION VALUE="ListeTercih3">Liste Tercih 3
</SELECT>
<SELECT NAME="CokluSecme" SIZE="3" MULTIPLE>
<OPTION VALUE="ListeKutu1">Çoklu Seçme Kutusu 1
<OPTION VALUE="ListeKutu2">Çoklu Seçme Kutusu 2
<OPTION VALUE="ListeKutu3">Çoklu Seçme Kutusu 3
</SELECT><P>
<INPUT TYPE="Submit" VALUE="Gönder"> <INPUT TYPE="RESET" VALUE="Sil">
</FORM>
</BODY>
</HTML>
Daha sonra belirlediğimiz değişkenlerin Form’un hangi öğelerinden geldiğinin rahat anlaşılması için burada Form unsurlarının değeri olarak unsurun adına yakın kelimeleri kullandığımıza dikkat edin. Sayfada üç ayrı Form bulunduğu, ilk iki formun POST, üçüncüsünün ise GET metoduyla Server’a bilgi gönderdiği de dikkatinizi çekmiş olmalı. POST metodunda Server’a giden bilgiler, talep edilen sayfanın adına URL kodlama yöntemiyle (ve dolayısıyla Browser’ınızın URL kutusuna yazılarak) gönderilmez; Fakat ilk iki Form’da POST metodu kullanmış olmamıza rağmen, formu işleyecek programa bilgilerin hangi formdan gittiği sanki GET metodu kullanılmış gibi bildiriliyor. Bu yöntemi, Request.Form kolleksiyonuna yazılmasını istemediğimiz bilgiler için kullanabibiliriz. Üçüncü Form ise bilgilerini GET yoluyla gönderiyor ve kendisinin hangi form olduğuna ilişkin bilgiyi ise gizli bir değişkene yazıyor. Her üç durumda da HagiForm değişkeninin değeri olarak, ASP programına formun sıra numarası anlamına gelen sayı gönderiliyor. Birinci form 1, ikinci form 2, üçüncü form ise 3 değerini yolluyor. Bu HTML dosyasını Browser’da açarsanız, üç ayrı formu göreceksiniz.
Her üç formun gönderdiği bilgiler aşağıdaki programa ulaşıyor. Bu programı FormOrnek.asp adıyla kaydedebilirsiniz:
<HTML>
<HEAD>
<TITLE>ORNEK FORM SONUCLARI</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>
<%
dim FormTercihi
FormTercihi = Request.QueryString("HangiForm")
Select Case FormTercihi
Case 1
%>
Metin alanı sonuçları<P>
<TABLE BORDER=1 CELLPADDING=5 width=75%>
<TR><TD>Input/Text Alanı</TD><TD><B><%= Request.Form("MetinGir") %></B></TD></TR>
<TR><TD>Input/Passsword Alanı</TD><TD><B><%= Request.Form("ParolaAlani") %></B></TD></TR>
<TR><TD>TextArea Alanı</TD><TD><B><%= Request.Form("MetinAlani") %></B></TD></TR>
</TABLE>
<HR>
<%
Case 2
%>
Radyo Düğmesi ve İşaret Kutusu Sonuçları<P>
<TABLE BORDER=1 CELLPADDING=5 width=25%>
<TR><TD>Seçilen Radyo Düğmesi</TD><TD><B><%= Request.Form("Radyo") %></B></TD></TR>
<TR><TD>İşaretlenen Kutular</TD><TD><B><%
dim strIsaretlenen
for each strIsaretlenen in Request.Form("IsaretKutusu")
Response.Write strIsaretlenen & "<BR>"
next
%></B></TD></TR>
</TABLE>
<HR>
<%
Case 3
%>
Seçme Alanları sonuçları<P>
<TABLE BORDER=1 CELLPADDING=5 width=35%>
<TR><TD>Seçilen Liste Ögesi</TD><TD><B><%= Request("SecmeListesi") %></B></TD></TR>
<TR><TD>Seçilen Çoklu Liste Ögeleri</TD><TD><B><%
for each strIsaretlenen in Request("CokluSecme")
Response.Write strIsaretlenen & "<BR>"
next
%></B></TD></TR>
</TABLE>
<HR>
<%
End Select
%>
Bu programda, üç ayrı formdan gelebilecek bilgiler, HangiForm değişkeninin değerine göre, Select Case döngüsü ile üç ayrı bölümde işleniyor. İlk iki formda, bilgiler POST metodu ile geldiği için Request.Form nesnesinin içinde, değişken adıyla aranabilir. Üçüncü Formda ise bilgiler Request.QueryString nesnesinde bulunuyor. Burada bu bilgilerin daha önce görmediğimiz kısaltma yöntemiyle alınıp, sayfaya aktarıldığını görüyorsunuz; <%=Request("SecmeListesi")>, aslında;
Response.Write Request.QueryString(“SecmeListesi”)
ifadesinin kısaltılmışıdır.
FormOrnek.htm’in her üç formunda da bazı tercihler yaparak Gönder düğmesini tıkladığınızda, FormOrnek.asp’ye gönderilen URL bilgisine dikkat edin. İlk ikisinde sadece seçilen formun HangiForm değeri yer aldığı halde. üçüncüsünde formdaki bütün bilgiler burada URL-kodlanmış olarak yer alacaktır.
Programın bilgi işleyen bölümünü kendiniz irdeleyebilir misiniz?