Tekil Mesaj gösterimi
Alt 17 Mart 2007, 20:39   #9
Çevrimdışı
telNET
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: ASP Anlatımı (Dökümandır)




ALIŞTIRMA UYGULAMALARI
Bu bölümde, birinci kitapçıkta öğrendiklerimizi küçük ASP uygulamalarında kullanacağız; ve böylece son iki bölümde yer alan nisbeten daha büyük ASP Programları için hazırlık yapmış olacağız. Bu bölümdeki örnekleri mutlaka kendiniz yazmalısınız ve açıklanmamış kodlardan anlamadıklarınız olursa mutlaka daha önceki bölümlere dönerek gözatmalısınız. Bu bölümdeki kodları dikkatle incelerseniz, çoğunda daha önce ele aldığımız temel VBScript komutlarının veya ASP nesnelerine ait metodlarının kimi zaman değişik tarzda kullanımına yer verdiğimizi göreceksiniz. Temel kullanım biçimlerini öğrendikten sonra, mutlaka Microsoft’un MS-Developers Network sitesinde ([Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]) VBScript ve ASP konularındaki belgeleri ve eğitim metinlerini incelemelisiniz.
Doğum Günü Hesabı
VBScript’in dil olarak bize sağladığı bazı kolaylıkları ASP teknolojisi ile birleştirebiliriz. ASP sayfalarımızda istediğimiz gibi HTML kodları da kullanırız. Bu örnekte, bu iki unsuru da birarada göreceğiz. Aşağıdaki kodu dogumgunu01.asp adıyla kaydedin:
<% @LANGUAGE=VBscript %>
<%
Option Explicit
Response.Expires = 0
Dim serverSaat, kalanSaat
serverSaat = Time
' aşağıdaki satırda işaretler arasındaki yere kendi doğum g&#252;n&#252;n&#252;z&#252; yazın
kalanSaat = DateDiff("h",Now,#7/8/2000#)
%>
<HTML>
<HEAD>
<TITLE>Dogum G&#252;n&#252; Hesabı!</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>
<H3>
<CENTER>
<p>Selam:</p>
<p>Şu anda saat: <%=ServerSaat%></p>
<%
If kalanSaat > 0 Then
Response.Write "Doğum g&#252;n&#252;n&#252;ze " & kalanSaat & " saat var." & VbCrLf
ElseIf kalanSaat < 0 Then
Response.Write "Doğum g&#252;n&#252;n&#252;z " & kalanSaat & " ge&#231;miş buluyor." & VbCrLf
Else
Response.Write "<b>Doğum g&#252;n&#252;n&#252;z kutlu olsun!</b>" & VbCrLf
End If
%>
</CENTER>
</H3>
</BODY>
</HTML>
Bu kodda bulunan ASP nesnelerini ve metodlarını kolayca g&#246;r&#252;yor olmalısınız. Tanımlamadığımız bir değişken kullanmayı veya değişken adlarını yanlış yazmayı &#246;nleyen Option Explicit ifadesi dikkatinizi &#231;ekiyor olmalı. Sayfamızda bir hesap yapılacağı i&#231;in Browser tarafından ge&#231;ici Internet dosyaları arasında (cache) saklanmasını istemediğimizi, Response.Expires’ın değerini 0 yaparak belirtiyoruz. iki değişken tanımlıyoruz (serverSaat ve kalanSaat) ve bunlardan birincisine Server’ın o andaki saatini Time fonksiyonu ile atıyoruz. İkinci değişken ise hesaplama sonucu belirlenecek. Bu arada ASP programının hangi tarihe ka&#231; saat kaldığını hesaplamasını istiyorsak, kalanSaat’i belirleyecek form&#252;le o tarihi yazıyoruz. Bu form&#252;le dikkatle bakalım:
kalanSaat = DateDiff("h",Now,#7/8/2000#)
DateDiff ve DateAdd, VBScript’in vereceğiniz iki tarih arasında, yine vereceğiniz bi&#231;ime g&#246;re farkı bulmasını veya toplamasını sağlar. Buradaki “h” hesap sonucunun saat olarak verilmesini istediğimiz g&#246;sterir. “d” ise sonucu g&#252;n olarak istediğimiz anlamına gelir. Now, Server’ın o andaki saatidir; ”#” işaretleri arasında ise hesabın yapılacağı tarih, veya buradaki &#246;rnekte doğum g&#252;n&#252;n&#252;z yer alıyor. kalanSaat değişkeninin değeri bu hesaplama sonucu olarak doğum g&#252;n&#252;n&#252;ze kalan saat olacaktır.
Kodumuzun geri kalan b&#246;l&#252;m&#252;nde ise elde ettiğimiz sonucu Browser’a yollayan bir If se&#231;imi var: doğum g&#252;n&#252;n&#252;ze kalan saat 0’dan b&#252;y&#252;kse veya k&#252;&#231;&#252;kse bunu farklı c&#252;mlelerle belirtiyoruz. Kalan s&#252;re 0 ise, bug&#252;n doğumg&#252;n&#252;n&#252;z demektir! (ASP ile bu kadar uğraşırsa, insanın doğum g&#252;n&#252;n&#252; filan unutması normaldir. &#252;z&#252;lmeyin!)
Daha &#246;nce VBScript’in metin ve değişkenleri birbirine “&” işareti ile eklediğini g&#246;rm&#252;şt&#252;k. VBScript ile yazdırdığımız satırların sonuna kimi zaman <BR> kodu koyarak, yeni satırın bir satır aşağıdan başlamasını sağladığımızı hatırlıyor olmalısınız. Burada & VbCrLf şeklinde g&#246;rd&#252;ğ&#252;m&#252;z ifade de bunu sağlar. Bu, Visual Basic’in “alt satıra ge&#231;, başa git!” (Carriage Return, Line Feed) komutudur.
Dedik ki, DateDiff ve DateAdd fonksiyonlarının, sonucu g&#252;n olarak vermesini istiyorsanız, “d” arg&#252;manını kullanmanız gerekir. Şimdi burada &#246;ğrendikleriniz bu programı doğumg&#252;n&#252;n&#252;ze kalan saati değil de g&#252;n&#252; hesaplayacak şekilde değiştirebilir misiniz? (Ortaya &#231;ıkartacağınız kodu bu kitap&#231;ığın kodları arasındaki dogumgunu02.asp dosyası ile karaşılaştırabilirsiniz.)
&#199;ift Tırnak Gerekince!
Kimi zaman ASP yoluyla ziyaret&#231;ininr Browser’ına HTML kodu g&#246;ndermek gerektiğinde HTML’in gerektirdiği &#231;ift tırmak işaretini yazdırma sorunuyla karşılaşırız. VBScript’in gereği olan &#231;ift-tırnak işaretinin i&#231;ine koyacağımız HTML’in gereği olan &#231;ift tırnak, ASP hatasına yol a&#231;ar, C'den t&#252;retilen dillerde ters b&#246;l&#252; işaretiyle yaptığımız t&#252;rden, kontrol karakterlerinin metin olarak anlaşılmaması işini (ESCape-ing'i) VBScript’te t&#252;rl&#252; şekillerde yapabiliriz. Burada, yerine g&#246;re, &#252;&#231; y&#246;ntemden yararlanabiliriz işe yarar:
1. Tırnak işareti gereken yerde iki kere tırnak yazmak;
2. İ&#231;erdeki tırnak yerine tek-tırnak kullanmak
3. İ&#231;erdeki tırnak yerine & Chr(34) & kullanmak. (Bu y&#246;ntemi kullandığımızda "dışardaki" tırnak diye bir şey kalmadığına dikkat etmek gerekir.)
&#214;rnekler:
objMetin.WriteLine("<%@ LANGUAGE=""VBScript""%\>")
objMetin.WriteLine("<%@ LANGUAGE='VBScript'%\>")
objTsOut.WriteLine("<%@ LANGUAGE=" & Chr(34) & "VBScript" & Chr(34) & "%\>")
HTML Dışında İ&#231;erik
HTTP iletişiminde istemci Browser ile Server arasında her talep ve sunuşla birlikte bir dizi HTTP Header (başlık) bilgisi g&#246;nderildiğini biliyoruz. Bu bilgiler arasında neler bulunduğunu dabu kitap&#231;ığın kodları arasında bulunan SerDeg.asp dosyasını &#231;alıştırarak inceleyebilirsiniz. Browser penceresinde beliren bilgilere dikkat ederseniz, Browser, Server’a HTTP yoluyla kabul edebileceği bilgi t&#252;rlerini de sıralıyor:
HTTP_ACCEPT:image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-powerpoint, application/vnd.ms-excel, */*
Burada d&#252;zyazı (text/plain) t&#252;r&#252;n&#252;n bulunmadığını g&#246;r&#252;yorsunuz. Fakat ASP yoluyla, sayfanıza d&#252;z yazı g&#246;nderebilirsiniz. Aşağıdaki kodu duzyazi.asp adıyla kaydedin, ve &#231;alıştırın:
<% @LANGUAGE=VBscript %>
<%
Response.ContentType = "text/plain"
Response.Expires = 0
%>
Bu dosyada HTML etiketi kullanmıyoruz. Metin tamamen bir d&#252;z yazıdan ibaret. İ&#231;inde <BR> kodu bulunmadığı halde satırlar Enter'a bastığımız yerde alt satıra ge&#231;ecektir. Bu kodu yazarken buradaki &#246;rnekte g&#246;rd&#252;ğ&#252;n&#252;z satır sonlarında Enter’a basmalısınız.
Genellikle HTML sayfalarımızı tasarlarken i&#231;erik t&#252;r&#252;n&#252; belirten Content-Type &#246;zelliğini yazmayız; &#231;&#252;nk&#252; Browser, i&#231;erik t&#252;r&#252; belirtilmemişse gelen belgenin mutlaka “text/html” olduğunu varsayar. Fakat burada olduğu gibi, i&#231;inde bir tek HTML etiketi (hatta <HTML> etiketi bile) olmayan bir metni Browsar’a g&#246;nderebilir ve istediğimiz şekilde g&#246;r&#252;nt&#252;letebiliriz. Bunu Response.ContentType = "text/plain" ifadesi sağlamaktadır.
Response nesnesi, varsayılan t&#252;rler dışında sadece d&#252;z yazı t&#252;r&#252; g&#246;ndermekle kalmaz, Browser’ın kabul edebileceği ve HTTP’nin aktarılmasına elverişli olduğu her t&#252;rl&#252; dosyayı g&#246;nderebilir. Bu dosya t&#252;rlerinin hangileri olabileceğini &#231;evre değişkenlerinden HTTP_Accept’in i&#231;inde g&#246;rebilirsiniz. Bunu sınamak i&#231;in duzyazi.asp’nin Content-Type satırını şu şekilde değiştirin ve dosyayı msword.asp adıyla kaydedin:
Response.ContentType = "application/msword"
Bu dosyayı &#231;alıştırdığınızda, Broewser t&#252;r&#252;n&#252;ze ve ayarlarınıza ve sisteminizde MS-Word programının bulunup bulunmamasına bağlı olarak, ya doğruca ya da size sorarak, bilgisayarınız MS Word kelime işlemcisini a&#231;acaktır:
Bu imkandan ziyaret&#231;iye resim veya diğer t&#252;r dosyaları g&#246;ndermek i&#231;in yayarlanabiliriz. Ancak bir resim dosyasını g&#246;nderirken, metin vermek yerine dosya yolu ve adını belirtmemiz gerekir.
Başka Sayfaya Y&#246;nlendirme
Diyelim ki ziyaret&#231;ilerimizin Web programımızda belirli işleri yapabilmeleri veya eski ifadesiyle sitemizde belirli bir sayfaya erişmek i&#231;in kayıt yaptırmış olmaları gerekiyor; bu kaydı yaptırmamış olanları kayıt sayfasına y&#246;nlendirmek istiyoruz. Birazdan form yoluyla ziyaret&#231;iden bilgi alma ve bunu işlemeyi g&#246;receğiz, ama şimdilik sadece bu senaryonun ikinci kısmını ele alalım: ziyaret&#231;imizi başka sayfaya y&#246;nlendirelim. Bunun i&#231;in iki ayrı sayfa yapacağız. &#214;nce şu kodu, gonder.asp adıyla kaydedin:
<% @LANGUAGE=VBscript %>
<%
Response.Redirect("yeni.asp")
Response.Expires = 0
%>
<HTML>
<HEAD>
<TITLE>ASP ILE YONLENDİRME</TITLE>
</HEAD>
<BODY>
Bu sayfada yazılı olanları okumanız m&#252;mk&#252;n olmayacak<br> &#231;&#252;nk&#252; bu sayfa sizi başka sayfaya g&#246;nderecek..
</BODY>
</HTML>
Şimdi şu kodu da yeni.asp adıyla kaydedin:
<HTML>
<HEAD>
<TITLE>YENİ SAYFA</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>
<%= “Sizi buraya başka sayfa g&#246;nderdi.. <BR>”%>
</BODY>
</HTML>
gonder.asp’yi &#231;ağırın; karşınıza yeni.asp’nin i&#231;eriği gelecektir; &#231;&#252;nk&#252; gonder.asp kendisinden beklediğimizi yapacak ve sizi yeni.asp’ye g&#246;nderecektir. Bunu “Response.Redirect” metodu yapmaktadır. Bu metodun arg&#252;manı olarak kendi programımızın bir başka sayfasını verebileceğiz gibi, bir Internet sitesinin URL’ini de verebiliriz.
Ziyaret&#231;iden Bilgi Alma
İstersek adına Web Programı diyelim, sitemize ziyaret&#231;ilerin bilgi ulaştırması ancak HTML’in Form etiketi yoluyla olur. Klasik HTML+CGI y&#246;ntemleri ile ASP tekniğinde Form etiketlerinin işlevleri arasında bir fark yoktur. Ancak aralarındaki benzerlik de hemen hemen bundan ibarettir. Klasik HTML+CGI y&#246;nteminde Form’larımızın Action &#246;zelliğine değer olarak &#231;oğu zaman bir CGI programının yolunu ve adını yazarız; oysa ASP’de Form bu bilgileri kendisinin de i&#231;inde bulunduğu ASP sayfasına g&#246;nderebilir; ve &#246;rneğin formun eksik doldurulup doldurulmadığını sınayabilir.
HTML bilgilerinizi tazelerseniz; bir Form’dan Server’a iki metodla bilgi gelebilir: Get ve Post y&#246;ntemleriyle. Get, Browser’ın bilgileri yumak yapıp, aradaki boşlukları kaldırarak ve ASCII olmayan karakterleri URL koduyla şifreleyerek Query_String i&#231;ine yazdırmasını sağlar. Diğer y&#246;ntemi birazdan ele alacağız.
K&#252;&#231;&#252;k bir form oluşturalım ve bu formdan Get yoluyla gelecek bilgileri daha sonra nasıl kullanabileceğimizi g&#246;rmek i&#231;in, şimdilik sadece sayfamıza yazdıralım. Şu kodu miniform_get.asp adıyla kaydedin:
<% @LANGUAGE=VBscript %>
<%
Option Explicit
Response.Expires = 0
Dim strAdi, strSoyadi, hamBilgi, islenmisBilgi
If Request.ServerVariables("QUERY_STRING") <> "" Then
strAdi = Trim(Request.QueryString("adi"))
strSoyadi = Trim(Request.QueryString("soyadi"))
hamBilgi = Trim(Request.QueryString("mesaj"))
islenmisBilgi = Replace(hamBilgi, vbcrlf, "<BR>" & vbcrlf)
%>
<html>
<head>
<title>Mini Form</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>
Script'imize Form'dan bilgi ulaştı <BR><BR>
Gelen bilgiler:<BR>
Formu dolduran kişinin adı: <%= strAdi%> <BR><BR>
Formu dolduran kişinin Soyadı: <%= strSoyadi%> <BR><BR>
Ham Bilgiler: <%= hamBilgi%> <BR><BR>
İşlenmiş Bilgiler: <%= islenmisBilgi%> <BR><BR>
"Query_String" olarak gelen bilgi: <BR>
<%= Request.ServerVariables("QUERY_STRING")%>
</body>
</html>
<%
Else
%>
<html>
<body>
Bize bilgi verir misiniz?<BR>
<FORM ACTION= "<%= Request.ServerVariables("SCRIPT_NAME") %>" METHOD="GET">
Adınız: <INPUT TYPE="Text" NAME="adi"><BR>
Soyadınız: <INPUT TYPE="Text" NAME="soyadi"><BR>
Mesajınız: <TEXTAREA NAME="mesaj">Mesajınızı buraya yazın!</TEXTAREA><BR>
<INPUT TYPE="Submit" NAME="G&#246;nder" VALUE="G&#246;nder">
</FORM>
</body>
</html>
<% End If %>
Kodumuzun bir değişken tanımladığımız ve Form’dan gelen bilgileri işleyen b&#246;l&#252;m&#252;, bir de hen&#252;z bu bilgi gelmeden &#246;nce Form’u oluşturan b&#246;l&#252;m&#252; olduğuna dikkat ediyor musunuz? Bu iki b&#246;l&#252;m&#252; bir If sınama deyimiyle oluşturduğumuzu da g&#246;r&#252;yorsunuz.
ASP tekniği ve VBScript’in kolaylıkları birleşince, CGI’da olduğu gibi, Formdan gelen bilgileri &#246;zel fonksiyonlar yazarak ayıklamamız gerekmez. ASP’nin anladığı şekliyle, Query_String Form’dan GET metoduyla gelen bilgileri Form’un bilgileri atadığı değişkenlerin adlarıyla eşleştirerek tutar; ve bize sadece Form’daki değişkenlerin değerlerini, istiyorsak, başka değişkenlere atamak kalır. Burada Form’un “adi” olan değişkenini bir String değişkeni olan strAdi değişkenine, yine Form’un “soyadi” olan değişkenini başka bir bir String değişkeni olan strSoyadi değişkenine atıyoruz. Bunu yapmamızın sebeplerinden biri iki dizi değişkenden hangisinin ASP tarafında kullanıldığını bilmektir.
Form’un &#252;&#231;&#252;nc&#252; değişkeni olan “mesaj” ise ASP tarafından işlenirken, iki şekilde ele alınacak: hamBilgi değişkeninin değeri olarak, ve bunu Replace() fonksiyonu ile işledikten sonra atayacağımız islenmisBilgi değişkenini değeri olarak.
Replace() fonksiyonu, bir değişkende bir değeri bulur ve arzu ettiğimiz bir başka değerle değştirir. &#220;&#231; arg&#252;man alır: i&#231;inde arama ve değişiklik yapılacak değişken, aranacak değer ve yerine konacak değer. Burada iki veya daha fazla paragraf i&#231;eren bir mesajın i&#231;indeki satırbaşı-yeni paragraf karakterini, HTML’in anlayacağı <BR> ve satırbaşı karakteri ile değiştiriyoruz.
Şimdi miniform_get.asp’yi &#231;alıştırın, doldurun (mesaj b&#246;l&#252;m&#252;nde iki paragraf oluşturmak i&#231;in bir yerde Ctrl+Enter’a basmayı unutmayın! Yoksa işlenmiş bilgi ile ham bilginin farkını g&#246;remeyiz!) ve G&#246;nder tuşunu tıklayın. Bu arada Browser’ınızın URL hanesine bakın. Bu Get metodunun bilgi g&#246;nderme şeklidir. Bilgiler URL-kodu olarak değiştirilir ve gideceği sayfanın adına, soru işareti ile eklenerek, g&#246;nderilir. (Tabii ziyaret&#231;iniz yıldızlar halinde g&#246;r&#252;nt&#252;lenen bir parola yazdıysa onu da burada a&#231;ık şekilde g&#246;recektir!)
Bizim Form bilgilerimiz hangi sayfaya g&#246;nderiliyor? Yine kendisine. Bunu Form etiketinin Action &#246;zelliğinin karşısında yazılı olan VBScript kodu sağlıyor. Bu yolla gelen bilgi, şuna benzer olmalıdır:
Script'imize Form'dan bilgi ulaştı
Gelen bilgiler:
Formu dolduran kişinin adı: Kroninukus
Formu dolduran kişinin Soyadı: Computerium
Ham Bilgiler: Merhaba Ben &#252;niversiteyi yeni bitirmiş bir gencim!
İşlenmiş Bilgiler: Merhaba
Ben &#252;niversiteyi yeni bitirmiş bir gencim!
"Query_String" olarak gelen bilgi:
adi=Kroninukus+&soyadi=Computerium+&mesaj=Merhaba% 0D%0ABen+%FCniversiteyi+yeni+bitirmi%FE+bir+gencim %21+%0D%0A&G%F6nder=G%F6nder
Replace() fonksiyonunun, mesajın i&#231;indeki CRLF karakterini bulup yerine <BR> koyduğuna dikkat edin. Query_String’in yazdığınız ad ve soyad ile mesajı nasıl yumak (tek String) yaptığına bakın. Ve programımızın bu yumaktan bilgileri alıp, yeni değişkenlere atayarak Browser penceresinde nasıl g&#246;r&#252;nt&#252;lediğini inceleyin.
Bu programın canalıcı noktası, Request nesnesinin ServerVariables kolleksiyonunda, Query_String koleksiyonunu kullanmasıdır. &#199;&#252;nk&#252; Get, Form’un sağladığı bilgileri bu koleksiyona kaydetmiş bulunuyor.
Şimdi aynı işi Post metodu ile yapalım. Bunun i&#231;in biraz &#246;nce kaydediğiniz kodda şu değişiklikleri yapın ve miniform_post.asp adıyla kaydedin:
<% @LANGUAGE=VBscript %>
<%
Option Explicit
Response.Expires = 0
Dim strAdi, strSoyadi, strBilgi
If Request.ServerVariables("CONTENT_LENGTH") <> 0 Then
strAdi = Trim(Request.Form("adi"))
strSoyadi = Trim(Request.Form("soyadi"))
strBilgi = Trim(Request.Form("mesaj"))
strBilgi = Replace(strBilgi, vbcrlf, "<BR>" & vbcrlf)
%>
<html>
<head>
<title>Mini Form (Post)</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>
Script'imize Form'dan bilgi ulaştı <BR><BR>
Gelen bilgiler:<BR>
Formu dolduran kişinin adı: <%= strAdi%> <BR><BR>
Formu dolduran kişinin Soyadı: <%= strSoyadi%> <BR><BR>
Mesaj: <%= strBilgi%> <BR><BR>
</body>
</html>
<%
Else
%>
<html>
<body>
Bize bilgi verir misiniz?<BR>
<FORM ACTION= "<%= Request.ServerVariables("SCRIPT_NAME") %>" METHOD="POST">
Adınız: <INPUT TYPE="Text" NAME="adi"><BR>
Soyadınız: <INPUT TYPE="Text" NAME="soyadi"><BR>
Mesajınız: <TEXTAREA NAME="mesaj">Mesajınızı buraya yazın!</TEXTAREA><BR>
<INPUT TYPE="Submit" NAME="G&#246;nder" VALUE="G&#246;nder">
</FORM>
</body>
</html>
<% End If %>
İki Miniform sayfası arasındaki değişikliği farkettiniz mi? &#214;nce, Form etiketinin METHOD &#246;zelliğinin Post olduğuna dikkat edin. Bu y&#246;ntemle gelen bilgiler, Request nesnesinin Form kolleksiyonuna, işlenmiş (yani değişken=değer &#231;iftleri halinde yazılmış) olacağı i&#231;in, Form bilgilerini yeni değişkenlere atama ifadelerimizi de farklı yazıyoruz. &#214;nce formdan ger&#231;ekten bilgi gelip gelmediğini Content_Length değişkeninin boyutunun sıfır olup olmadığına bakarak anlıyoruz. Bu değişkenin boyutu 0 ise form i&#231;i boş g&#246;nderilmiş demektir; bu durumda ziyaret&#231;iyi form’u doldurması i&#231;in uyaran bir Sub’a g&#246;nderebiliriz. Form doldurulmuş ise, kodumuzun birinci b&#246;l&#252;m&#252; yapması gereken değişkenlere atama işlemini yapıyor; ve sonu&#231;ları ziyaret&#231;inin Browser penceresine yazıyor. Daha sonra yapacağımız &#246;rnek Konuk Defteri’nde bu bilgileri ziyaret&#231;inin ekrarına değil, bir metin dosyasına yazacağımızı g&#246;receksiniz.
Form etiketlerinden bilgi alma
Form i&#231;inde kullandığımız bir &#231;ok etiket, Server’a farklı bi&#231;imde bilgi g&#246;nderir. Yukarıdaki &#246;rnekte g&#246;rd&#252;ğ&#252;m&#252;z Input ve Textarea etiketleri, kendi adlarını değişken adı yaparak ve değişkene ziyaret&#231;inin yazdığı metni değer olarak atayarak, g&#246;nderir. Fakat HTML’in <SELECT MULTIPLE> etiketi biraz daha dikkat etmemizi gerektirir; &#231;&#252;nk&#252; ziyaret&#231;i bu etiketle oluşturduğunuz se&#231;eneklerden birden fazla se&#231;ebilir ve bunlar Server’a bir kolleksiyonun elemanları olarak gelir. Ş&#246;yle bir &#246;rnek d&#252;ş&#252;n&#252;n:
<SELECT NAME=”CokluSecme” SIZE=”3” MULTIPLE>
<OPTION VALUE=”Emrah” SELECTED> Emrah
<OPTION VALUE=”Karacaoglan”> Karacaoğlan
<OPTION VALUE=”Sulari”> Davud Sulari
<OPTION VALUE=”Daimi”> Aşık Daimi
<OPTION VALUE=”Pirsultan”> Pir Sultan Abdal
Browser, kullanıcı birden fazla se&#231;im yaptıysa, yapılan se&#231;im sayısını, yani ka&#231; se&#231;enek se&#231;ildiğini bize bildirir ve bu Request nesnesinin Form kolleksiyonunda “CokluSecme” elemanının “.Count” değişkenine yazılır. Bu bakımdan “CokluSecme” kendisi bir kolleksiyondur. Yani, bu değişkenin değerini kullanarak, “CokluSecme” kolleksiyonunun elemanlarını tek tek okutmak i&#231;in bir For d&#246;ng&#252;s&#252;nden yararlanabiliriz:
For sayac = 1 to Request.Form(“CokluSecme”).Count
Response.Write(sayac & “. se&#231;im: “ & Request.Form(“CokluSecme”)(sayac) & “<BR>”)

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet sohbet