[size=0pt]Uygulama...[/size][size=0pt][/size]
[size=0pt]Server taraflı dillerde kullanıcıdan gelen bilgilerin doğrulanması, browser tabanlı dillerdekinden daha güvenli olacaktır. Çünkü programın kullandığı algoritma bilinmediği için atlatılma şansı daha az olacaktır.[/size]
[size=0pt] Her dilde olduğu gibi ASP ile de form doğrulamak için onlarca yol geliştirilebilir. Biz yine bunu olabilecek en basit yolla yapmaya çalışacağız.[/size]
[size=0pt]Programımız tek sayfadan ve iki bölümden oluşacak:[/size]
Birincisi formumuzu içinde barındıran bir sub rutin, diğer bölüm ise asp kodlarımızı barındıran bölüm. İsterseniz hemen örneğe geçelim.
form.asp
<%
dim islem
dim mesaj
dim isimFontRengi
dim soyisimFontRengi
dim epostaFontRengi
islem = Request.QueryString("islem")
If islem = "" Then
isimFontRengi = "#000000"
soyisimFontRengi = "#000000"
epostaFontRengi = "#000000"
mesaj= ""
Call bilgiForm
ElseIf islem = "gonder" Then
dim isim
dim soyisim
dim eposta
dim hataVar
isim = Request.Form("isim")
soyisim = Request.Form("soyisim")
eposta = Request.Form("eposta")
If isim = "" Then
hataVar = True
isimFontRengi = "#ff0000"
End If
If soyisim = "" Then
hataVar = True
soyisimFontRengi = "#ff0000"
End If
If eposta = "" Then
hataVar = True
epostaFontRengi = "#ff0000"
End If
If hataVar = True Then
mesaj = "<b>Lütfen kırmızı ile belirtilmiş alanları doldurup tekrar deneyin.</b>"
Call bilgiForm
Else
With Response
.Write "<b>Bilgilerinizi başarı ile gönderdiniz</b>.<br>" &VbCrlf
.Write "<b>İsim:</b>" & isim &"<br>"& VbCrlf
.Write "<b>Soyisim:</b>" & soyisim &"<br>"& VbCrlf
.Write "<b>Eposta:</b>" & eposta & VbCrlf
End With
End If
End If
%>
<% Sub bilgiForm %>
<% =mesaj %>
<form method=post action="<%= Request.ServerVariables("SCRIPT_NAME") %>?islem=gonder">
<font color="<%=isimFontRengi%>">İsim:</font> <input type="text" name="isim" value=<%=isim%>><br>
<font color="<%=soyisimFontRengi%>">Soyisim:</font> <input type="text" name="soyisim" value=<%=soyisim%>><br>
<font color="<%=epostaFontRengi%>">E-Posta:</font> <input type="text" name="eposta" value=<%=eposta%>><br><br>
<input type="submit" value="Gönder">
</form>
<% End Sub %>
[size=0pt]Programımıza değişkenlerimizi tanımlayarak başlıyoruz. Buradan sonra programımızın ilk bölümü başlıyor.[/size]
[size=0pt]10 satırda islem değişkeninin değerini kontrol ediyoruz, eğer boş ise sisteme ilk girildiğinde çalışacak olan bilgiForm sub rutinini çağırıyoruz (islem değişkeni bilgiForm formunda gönderdiğimiz bir değişkendir, amacı form gönderildiğinde yapılacak işlemleri tetiklemektir.). 18. satırda formun gönderilmesi durumu vardır, yani islem = "gonder" durumu gerçekleştiğinde 18 ve 58. satırlar arasındaki program işleyecektir[/size]
[size=0pt]Öncelikle yine programın bu bölümünde kullanılacak değişkenleri tanımlıyoruz. Daha sonra form alanlarımızın dolu olup olmadıklarını kontrol ediyoruz. Eğer boş iseler form alanı yanındaki metni farklı renkte yapacak kodu değişkene atıyoruz ve hataVar isimli bir boolean değişken oluşturup buna True değeri veriyoruz (Burada her bir form alanını ayrı bir if..end if bloğu içerisinde tutuyoruz, çünkü if..elseif...end if bloğundaki durumlardan yanlız biri işler, burada her bir durumun ayrı ayrı işlemesi gerekiyor.). Son olarakta boolean değişkenimizi kontrol ediyoruz ve hataVar = True olması durumunda, yani alanlardan birinin boş olması durumunda bir hata mesajı verip, formumuzu ekrana tekrar basıyoruz. Hata yoksa da sonuçlar ekrana basıyoruz. [/size]
[size=0pt]Programın ikinci bölümünde ise basit bir html formu kullanıyoruz. Bu formda dikkat edilmesi gereken iki husus var: Birincisi value kısmında, hata oluştuğunda form alanı dolu ise, değeri bu alan yazmak için kullandığımız <%=isim%> gibi bir değişken. İkincisi yine hata oluştuğunda boş alanın karşısındaki alanı farklı renkte yazmak için kullandığımız <%=isimFontRengi%> gibi bir değişken. Diğer kısımlar ise bildiğimiz html.[/size]
Bu şekilde anlatıldığında yapılan işlem çok karmaşık gibi görünüyor. Aslında çok basit ve çoğu zaman yapılması zaruri bir işlem. Tabi ki sayfanın tekrar yüklenmemesi, daha dinamik görünmesi açısından bir de JavaScript kontrolü yapılabilir, ama server taraflı kontrol her zaman daha güvenli olacaktır.
[size=0pt][/size]