Haberler:

Zamanının büyük çoğunluğunu internette geçiren ve forumumuzla yeterince ilgilenebilecek moderatörler alınacaktır.

Ana Menü

ASP ile Form Doğrulama

Başlatan yakamoz, 25 Ocak , 2011, 22:03:32

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

yakamoz

 [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]
Zaman Geçmezde - Geçilmezde
İter Seni Arkandan,Düşürür Dizlerinin Üstüne
Kaçar Elinden Saniyeler,
Saçılır Yerlere

yakamoz

Zaman Geçmezde - Geçilmezde
İter Seni Arkandan,Düşürür Dizlerinin Üstüne
Kaçar Elinden Saniyeler,
Saçılır Yerlere