HTML Formlarıyla Çalışma


ASP Request nesnesini kullanarak, HTML formlarıyla birleştirilmiş verileri toplamak ve işletmek için, basit ama güçlü betikler oluşturabilirsiniz. Bu başlık altında, sadece temel form işletim betiklerini öğrenmekle kalmayacak, aynı zamanda, hem Web sunucunuz hem de kullanıcı tarayıcısı üzerinde form bilgisi onaylamak için yararlı teknikleri de öğrenmiş olacaksınız.
HTML Formları Hakkında
HTML formları, Web bilgilerini toparlamanın en iyi metodu budur, özel HTML etiketlerinin (ki bunlar Web sayfası üzerindeki arayüz kontrollerini sağlar) düzenlemesidir. Metin kutuları, düğmeler, ve onay kutuları kullanıcının bir Web sayfasıyla iletişimini ve Web sunucuya bilgi onayı sağlayan kontrollere örneklerdir.
Aşağıdaki HTML örneği kullanıcının adı, soyadı ve yaşı bilgilerini girmesini ve Web sunucuya bu bilgilerin onaylanmasını sağlayan bir de düğmesi bulunan bir formu oluşturur. Form ayrıca Web sunucuya ek bilgiler iletebilen bir saklı kontrol de içerir.
<FORM METHOD=”POST” ACTION=”dosyam.asp”>
<INPUT TYPE=”text” NAME=”adi”>
<INPUT TYPE=”text” NAME=”soyadi”>
<INPUT TYPE=”text” NAME=”yasi”>
<INPUT TYPE=”hidden” NAME=”userstatus” VALUE= “new”>
<INPUT TYPE=”submit” VALUE=”Enter”>
</FORM>
ASP ile Form Girişlerini Ele Almak
Bir form Web sunucuya bilgi onaylayınca, kullanıcı tarayıcısı HTML <FORM > etiketinin ACTION özelliği ile belirtilen .asp dosyasını ister. .asp dosyası form değer işletimini ele alan betikler içerir. Sonuçlar tablosu görüntülemek ya da veri tabanından veri sorgulamak gibi…
HTML form değerlerini biriktirmek için .asp dosyaları kullanmanın üç yolu vardır:
· Bir .asp dosyası bilgileri başka bir .asp dosyasına ileten bir form oluşturabilir.
· Bir statik .htm dosyası değerlerini .asp dosyasına ileten bir form içerebilir.
· Bir .asp dosyası bilgileri kendine iletebilir.
İlk iki metod diğer giriş programlarıyla çalışan formlarla aynı şekilde çalışır. Fakat Asp ile kullanıcı seçimlerini okuyan ve cevaplayan komutlar da kullanabilirsiniz.
Bilgiyi kendine yollayan bir form tanımı içeren .asp dosyası oluşturmak daha karmaşık ama daha güçlü bir formlarla çalışma yoludur. Bu işlem “Form Girişi Onaylamak” kısmında anlatılmaktadır.
Form Girişi
ASP Request nesnesi iki yığın sağlar ki bunlar bir URL istemine eklenmiş form bilgilerini yeniden elde etme işini basitleştirir.
“QueryString” Yığını
QueryString yığını Web sunucunuza iletilen form değerlerini, istem URLsinde soru işareti ile biten bir metin olarak getirir. Form değerleri istem URLsine ya HTTP GET metodu ile ya da elle form değerlerini URLye ekleyerek ilave edilebilir.
Örneğin, bir önceki form örneğinde GET metodu (ACTION = “GET”) kullanılsa ve kullanıcı Jeff, Smith, ve 30 yazmış olsaydı, aşağıdaki URL istemi sunucuya yollanmış olurdu:
http://scripts/Myfile.asp?adi=Jeff&soyadi=Smith&yasi=30&userstatus=new
Myfile.asp aşağıdaki form işletim betiğini içerebilir:
Merhaba, <%= Request.QueryString(”adi”) %> <%= Request.QueryString(”soyadi”) %>.
Siz <%= Request.QueryString(”yasi”) %> yasindasiniz.
<%
If Request.QueryString(”userstatus”) = “new user” then
Response.Write”Bu Web sitesine ilk gelişiniz!”
End if
%>
Bu durumda, Web sunucunuz kullanıcı Web tarayıcısına aşağıdaki metini döndürür:
Merhaba, Jeff Smith. Siz 30 yasindasiniz. Bu Web sitesine ilk gelişiniz!
QueryString yığınının aynı zamanda bir de istem gövdesinde yer alabilen çoklu değerlerden birine erişmek için kullanılacak seçimlik bir parametresi vardır. Ayrıca Count özelliğini de belli bir türün kullanılma sayısını saymak için kullanabilirsiniz.
Örneğin, birçok maddesi bulunan bir liste kutusunu içeren bir form, aşağıdaki istemi oluşturur:
http://list.asp?yiyecek=elma&yiyecek=zeytin&yiyecek=ekmek
Ayrıca, çoklu değerleri saymak için aşağıdaki komutu da kullanabilirsiniz:
Request.QueryString(”yiyecek”).Count
Çoklu değer türlerini görüntülemek için, List.asp aşağıdaki betiği içerir:
<%Total = Request.QueryString(”yiyecek”).Count%>
<%For i = 1 to Total%>
<%= Request.QueryString(”yiyecek”)(i) %>
<%Next%>
Yukarıdaki betik görüntüsü:
apples
olives
bread
Form Yığını
HTTP GET metodunu Web sunucuya karışık ve uzun form değerlerini ileteceğiniz zaman, bilgiyi kaybetme riskiniz vardır. Çoğu Web sunucular URL sorgu dizgisi boyunu kısıtlamaya eğilimlidir. Bu yüzden, uzun form değerlerinin kısaltılması için GET metodu kullanılır. Eğer bir formdan bir Web sunucuya büyük miktarda bir bilgi gönderecekseniz, HTTP POST metodunu kullanmalısınız. HTTP istem gövdesinde form verisi gönderen POST metodu, sunucuya sınırsız sayıda karakteri sanal olarak yollar. ASP Request nesnesinin Form yığınını POST metodu ile yollanmış değerleri elde etmek için kullanabilirsiniz.
Form yığını, değerleri QueryString yığını ile aynı mantıkla saklar. Örneğin, eğer bir kullanıcı uzun bir liste halinde isimler girerek bir formu doldurduysa, isimleri aşağıdaki betik ile elde edebilirsiniz:
<% For i = 1 to Request.Form.Count %>
<% =Request.Form(”isimler”)(i) %>
<% Next %>
Form Girişi Onaylamak
İyi bir işletim betiği, verileri işlemeden önce girilen bilgiyi onaylar. Onaylama betiği, kullanıcının forma girdiği bilgilerin doğru türlerde olup olmadığını kontrol eder. Örneğin, eğer Web siteniz kullanıcıya finansal bilgileri hesaplama imkanı veren bir form içeriyorsa, sonuçların işletimden önce kullanıcının metin değil sayısal değerler girdiğini onaylanmasını isteyebilirsiniz.
Form girişini onaylamanın iyi bir yolu da bilgiyi kendine veren bir form yaratmaktır. Bu durumda, .asp dosyası bilgiyi getiren formu içerir. Örneğin, aşağıdaki betik, bilgiyi kendine yollayarak, “yaş” alanına sayı girilip girilmediğini saptar:
<% If Isnumeric(Request.QueryString(”yasi”)) then %>
<p>Merhaba,yaşınız <%=Request.QueryString(”age”)%>
<%Else %>
<p>Lütfen sayısal bir değer giriniz.
<%End If %>
<FORM METHOD= “POST” ACTION=”verify.asp” >
Name: <INPUT TYPE=”text” NAME=”adi” >
Age: <INPUT TYPE=”text” NAME=”yasi” >
<INPUT TYPE=”submit” VALUE=”Enter”>
</FORM>
Bu örnekte, betik Verify.asp isimli bir dosyanın, formu içeren aynı dosya, içindedir. Form bilgiyi kendine ACTION özelliğinde Verify.asp’yi belirterek yollar.
Ayrıca, kullanıcının uygun bilgiler girdiğini kontrol etmek için istemci-taraflı betikler de oluşturabilirsiniz. Form giriş hatalarını kullanıcılara daha hızlı bildirmek için form girişini kullanıcı Web tarayıcısında onaylamak, Web sunucunuzun ağ trafiğini azaltacaktır. Aşağıdaki betik, kullanıcı Web tarayıcısı üzerinde çalışır ve bilgiyi Web sunucunuza bildirmeden önce kullanıcı bilgilerini onaylar.
<SCRIPT LANGUAGE=”VBScript”>
<!–
Sub btnEnter_OnClick
Dim Form
Set Form = Document.MyForm
If IsNumeric(Form.yasi.Value) Then
Form.submit
Else
Msgbox “Lütfen sayısal bir değer giriniz.”
End if
End Sub
//–>
</SCRIPT>
<FORM METHOD= “POST” NAME= Formum ACTION=”dosyam.asp” >
adi: <INPUT TYPE=”text” NAME=”adi” >
yasi: <INPUT TYPE=”text” NAME=”yasi” >
<INPUT TYPE=”button” NAME=”btnEnter” VALUE=”Enter”>
</FORM>

ASP Request nesnesini kullanarak, HTML formlarıyla birleştirilmiş verileri toplamak ve işletmek için, basit ama güçlü betikler oluşturabilirsiniz. Bu başlık altında, sadece temel form işletim betiklerini öğrenmekle kalmayacak, aynı zamanda, hem Web sunucunuz hem de kullanıcı tarayıcısı üzerinde form bilgisi onaylamak için yararlı teknikleri de öğrenmiş olacaksınız.

HTML Formları Hakkında

HTML formları, Web bilgilerini toparlamanın en iyi metodu budur, özel HTML etiketlerinin (ki bunlar Web sayfası üzerindeki arayüz kontrollerini sağlar) düzenlemesidir. Metin kutuları, düğmeler, ve onay kutuları kullanıcının bir Web sayfasıyla iletişimini ve Web sunucuya bilgi onayı sağlayan kontrollere örneklerdir.

Aşağıdaki HTML örneği kullanıcının adı, soyadı ve yaşı bilgilerini girmesini ve Web sunucuya bu bilgilerin onaylanmasını sağlayan bir de düğmesi bulunan bir formu oluşturur. Form ayrıca Web sunucuya ek bilgiler iletebilen bir saklı kontrol de içerir.

<FORM METHOD=”POST” ACTION=”dosyam.asp”>
<INPUT TYPE=”text” NAME=”adi”>
<INPUT TYPE=”text” NAME=”soyadi”>
<INPUT TYPE=”text” NAME=”yasi”>
<INPUT TYPE=”hidden” NAME=”userstatus” VALUE= “new”>
<INPUT TYPE=”submit” VALUE=”Enter”>
</FORM>


ASP ile Form Girişlerini Ele Almak
Bir form Web sunucuya bilgi onaylayınca, kullanıcı tarayıcısı HTML <FORM > etiketinin ACTION özelliği ile belirtilen .asp dosyasını ister. .asp dosyası form değer işletimini ele alan betikler içerir. Sonuçlar tablosu görüntülemek ya da veri tabanından veri sorgulamak gibi…

HTML form değerlerini biriktirmek için .asp dosyaları kullanmanın üç yolu vardır:

· Bir .asp dosyası bilgileri başka bir .asp dosyasına ileten bir form oluşturabilir.
· Bir statik .htm dosyası değerlerini .asp dosyasına ileten bir form içerebilir.
· Bir .asp dosyası bilgileri kendine iletebilir.
İlk iki metod diğer giriş programlarıyla çalışan formlarla aynı şekilde çalışır. Fakat Asp ile kullanıcı seçimlerini okuyan ve cevaplayan komutlar da kullanabilirsiniz.

Bilgiyi kendine yollayan bir form tanımı içeren .asp dosyası oluşturmak daha karmaşık ama daha güçlü bir formlarla çalışma yoludur. Bu işlem “Form Girişi Onaylamak” kısmında anlatılmaktadır.

Form Girişi
ASP Request nesnesi iki yığın sağlar ki bunlar bir URL istemine eklenmiş form bilgilerini yeniden elde etme işini basitleştirir.

“QueryString” Yığını
QueryString yığını Web sunucunuza iletilen form değerlerini, istem URLsinde soru işareti ile biten bir metin olarak getirir. Form değerleri istem URLsine ya HTTP GET metodu ile ya da elle form değerlerini URLye ekleyerek ilave edilebilir.

Örneğin, bir önceki form örneğinde GET metodu (ACTION = “GET”) kullanılsa ve kullanıcı Jeff, Smith, ve 30 yazmış olsaydı, aşağıdaki URL istemi sunucuya yollanmış olurdu:

http://scripts/Myfile.asp?adi=Jeff&soyadi=Smith&yasi=30&userstatus=new

Myfile.asp aşağıdaki form işletim betiğini içerebilir:

Merhaba, <%= Request.QueryString(”adi”) %> <%= Request.QueryString(”soyadi”) %>.
Siz <%= Request.QueryString(”yasi”) %> yasindasiniz.
<%
If Request.QueryString(”userstatus”) = “new user” then
Response.Write”Bu Web sitesine ilk gelişiniz!”
End if
%>


Bu durumda, Web sunucunuz kullanıcı Web tarayıcısına aşağıdaki metini döndürür:

Merhaba, Jeff Smith. Siz 30 yasindasiniz. Bu Web sitesine ilk gelişiniz!

QueryString yığınının aynı zamanda bir de istem gövdesinde yer alabilen çoklu değerlerden birine erişmek için kullanılacak seçimlik bir parametresi vardır. Ayrıca Count özelliğini de belli bir türün kullanılma sayısını saymak için kullanabilirsiniz.

Örneğin, birçok maddesi bulunan bir liste kutusunu içeren bir form, aşağıdaki istemi oluşturur:

http://list.asp?yiyecek=elma&yiyecek=zeytin&yiyecek=ekmek

Ayrıca, çoklu değerleri saymak için aşağıdaki komutu da kullanabilirsiniz:

Request.QueryString(”yiyecek”).Count

Çoklu değer türlerini görüntülemek için, List.asp aşağıdaki betiği içerir:

<%Total = Request.QueryString(”yiyecek”).Count%>
<%For i = 1 to Total%>
<%= Request.QueryString(”yiyecek”)(i) %>
<%Next%>

Yukarıdaki betik görüntüsü:
apples
olives
bread

Form Yığını
HTTP GET metodunu Web sunucuya karışık ve uzun form değerlerini ileteceğiniz zaman, bilgiyi kaybetme riskiniz vardır. Çoğu Web sunucular URL sorgu dizgisi boyunu kısıtlamaya eğilimlidir. Bu yüzden, uzun form değerlerinin kısaltılması için GET metodu kullanılır. Eğer bir formdan bir Web sunucuya büyük miktarda bir bilgi gönderecekseniz, HTTP POST metodunu kullanmalısınız. HTTP istem gövdesinde form verisi gönderen POST metodu, sunucuya sınırsız sayıda karakteri sanal olarak yollar. ASP Request nesnesinin Form yığınını POST metodu ile yollanmış değerleri elde etmek için kullanabilirsiniz.

Form yığını, değerleri QueryString yığını ile aynı mantıkla saklar. Örneğin, eğer bir kullanıcı uzun bir liste halinde isimler girerek bir formu doldurduysa, isimleri aşağıdaki betik ile elde edebilirsiniz:

<% For i = 1 to Request.Form.Count %>
<% =Request.Form(”isimler”)(i) %>
<% Next %>


Form Girişi Onaylamak
İyi bir işletim betiği, verileri işlemeden önce girilen bilgiyi onaylar. Onaylama betiği, kullanıcının forma girdiği bilgilerin doğru türlerde olup olmadığını kontrol eder. Örneğin, eğer Web siteniz kullanıcıya finansal bilgileri hesaplama imkanı veren bir form içeriyorsa, sonuçların işletimden önce kullanıcının metin değil sayısal değerler girdiğini onaylanmasını isteyebilirsiniz.

Form girişini onaylamanın iyi bir yolu da bilgiyi kendine veren bir form yaratmaktır. Bu durumda, .asp dosyası bilgiyi getiren formu içerir. Örneğin, aşağıdaki betik, bilgiyi kendine yollayarak, “yaş” alanına sayı girilip girilmediğini saptar:

<% If Isnumeric(Request.QueryString(”yasi”)) then %>
<p>Merhaba,yaşınız <%=Request.QueryString(”age”)%>
<%Else %>
<p>Lütfen sayısal bir değer giriniz.
<%End If %>

<FORM METHOD= “POST” ACTION=”verify.asp” >
Name: <INPUT TYPE=”text” NAME=”adi” >
Age: <INPUT TYPE=”text” NAME=”yasi” >
<INPUT TYPE=”submit” VALUE=”Enter”>
</FORM>

Bu örnekte, betik Verify.asp isimli bir dosyanın, formu içeren aynı dosya, içindedir. Form bilgiyi kendine ACTION özelliğinde Verify.asp’yi belirterek yollar.

Ayrıca, kullanıcının uygun bilgiler girdiğini kontrol etmek için istemci-taraflı betikler de oluşturabilirsiniz. Form giriş hatalarını kullanıcılara daha hızlı bildirmek için form girişini kullanıcı Web tarayıcısında onaylamak, Web sunucunuzun ağ trafiğini azaltacaktır. Aşağıdaki betik, kullanıcı Web tarayıcısı üzerinde çalışır ve bilgiyi Web sunucunuza bildirmeden önce kullanıcı bilgilerini onaylar.

<SCRIPT LANGUAGE=”VBScript”>
<!–
Sub btnEnter_OnClick
Dim Form
Set Form = Document.MyForm
If IsNumeric(Form.yasi.Value) Then
Form.submit
Else
Msgbox “Lütfen sayısal bir değer giriniz.”
End if
End Sub
//–>
</SCRIPT>

<FORM METHOD= “POST” NAME= Formum ACTION=”dosyam.asp” >
adi: <INPUT TYPE=”text” NAME=”adi” >
yasi: <INPUT TYPE=”text” NAME=”yasi” >
<INPUT TYPE=”button” NAME=”btnEnter” VALUE=”Enter”>
</FORM>

Not; Bu yazı 04 Aralık 2003 tarihinde http://www.sorucevap.com/uyeler/dersler.asp?maxiturk adresinde tarafımca yayınlanmıştır.

Kolay Gelsin :)

, , ,

  1. Henüz hiç yorum yok.

You must be logged in to post a comment.