BİLİŞİM - BİLGİSAYAR - EĞİTİM
  E-Posta Doğrulama
 

E-Posta Doğrulama

Ziyaretçimizin doğru adres verdiğini, bu adresin geçerli bir elektronik posta alıcısına ait olduğunu doğrulamamız mümkün değil, ama en azından adresin doğru yazılıp yazılmadığını denetleyebiliriz. Bunu yapmanın bir yolu elektronik adresin içinde @ karakteri ile en az bir adet nokta bulunduğunu garantilemek olabilir.

Bunu denetleyecek kodu içeren aşağıdaki örnek kodu email.asp adıyla kaydedin:

<% @Language = VBscript %>

<HTML>

<HEAD>

<TITLE>E-Mail Form’u</TITLE>

<META http-equiv="content-type" content="text/html; charset=ISO-8859-9">

<META http-equiv="Content-Type" content="text/html; charset=windows-1254"><%

If Not IsEmpty(Request.Form("Email")) Then

 strEmail = Request.Form("Email")

 If dogruMu(strEmail) Then

            Response.Write strEmail & " adresini aldık; teşekkür ederiz.<BR>"

'           .....[BURAYA DIĞER KODLAR GİRECEK]........................

 Else  

  Response.Write strEmail & " adresi doğru görünmüyor.<BR>"

 End If

End If

%>

<FORM "Name="Email" Action="email.asp" Method="post">

Enter an email address:

<INPUT Name="Email" Type=Text>

<BR>

<!- - Buraya formun diğer unsurları girecek - - >

<INPUT Type=Submit Value="Gönder">

</FORM>

<SCRIPT RUNAT=SERVER LANGUAGE=VBScript>

Function dogruMu (byval adres)

 AtIsareti=0                  'sayaç olarak kullanacağımız

 Nokta=0          'değişkenleri sıfırlayalım

 dogruMu=false                'Fonksiyonun değerini yanlış olarak belirleyelim

 KacKarakter=len(adres)       'adresin boyutunu bir değişkene atayalım

 For i=1 to KacKarakter       'döngüyü başlatalım

  karakter=mid(adres, i, 1)   'sayacın gösterdiği karakteri alalım

  if karakter="@" then        '@ işareti olup olmadığına bakalım

   AtIsareti=AtIsareti + 1    '@ işareti ise sayacı bir arttıralım

  End If

  if karakter="." Then        'nokta işaretini arayalım

   Nokta=Nokta + 1            'nokta ise nokta sayasını bir arttıralım

  End if

 Next            'bir sonraki karaktere geçelim

If AtIsareti=1 and Nokta >0 Then          'Bir @ ve en az bir nokta olduysa

dogruMu=true                              'Fonksiyonun değerini doğru yapalım

End If

End Function

</SCRIPT>

</HTML>

Bu programı, bu şekliyle sınama amacıyla çalıştırabilirsiniz. Fakat daha sonra programlarınızda kullanmanız gerekirse, bazı değişiklikler yapmanız gerekir. Bu değişiklikleri kodu inceledikten sonra ele alalım.

Sayfamızda tek elemanlı bir Form var ve sınama amacıyla buraya elektronik posta adresimizi yazabiliriz. Sayfa açıldığında çalışan VBScript’in kendi-içinde varolan isEmpty fonksiyonunu bir If döngüsü içinde çağırarak, kendi içindeki formdan kendisine bir değer gelip gelmediğine bakacak; değer olmadığını görünce formu sunacaktır. Forma herhangi bir şey yazıp, Gönder düğmesini tıkladığımız zaman ASP kodumuz, bu kez dogruMu adlı fonksiyona formdan gelen Email değişkeninin değerini vererek sonucu bekleyecektir.

<aspguv0001.tif>

dogruMu fonksiyonu güvenlik kaygısıyla Server’da çalışan sunucu-tarafı Script’tir; metni ve sonuçları kesinlikle kullanıcıya gönderilmeyecektir. Bu fonksiyon, kendisine aktarılan değişken değerinde, içiçe iki If döngüsü ile @ ve nokta işaretlerini arayarak sayacaktır. Bu sayımın sonucu iki değişkenin değerleri arzu ettiğimiz sayıda (AtIsareti bire eşit ve Nokta sıfırdan büyük) ise kendisini çağıran satıra True (doğru), değilse False (yanlış) değerini gönderecektir. Biliyoruz ki, bir fonksiyon doğru sonuç verirse, If döngüsü birinci komuttan, yanlış sonuç verirse Else bölümünden yoluna devam eder. Bu örnekte, dogruMu fonksiyonu doğru sonuç verirse Response.Write metoduyla Browser penceresine elektronik posta adresinin alındığına ilişkin teşekkür mesajı yazdırılacak; yanlış sonuç verirse, adresin yanlış olduğu bildirilecektir.

Gerçek Internet uygulamasında bu tür bir sınama yapacağınız zaman, yukardaki programın fonksiyonu içeren SERVER SCRIPT (“<SCRIPT RUNAT=SERVER....>” diye başlayan ve “</SCRIPT>” diye biten) bölümünü aynen sayfanızın herhangi bir yerine koyabilirsiniz. Daha sonra ziyaretçiden gelecek elektronik posta adresine göndermede bulunduğunuz ilk yerde ve bu adresi tutan değişken ile herhangi bir işlem yapmadan, örneğin veri tabanına yazmadan veya programın içinde bir başka şekilde kullanmadan önce, sadece şuna benzer bir kod bölümü yazmanız yeter:

strEmail = Request.Form("Email")

 If dogruMu(strEmail) Then

.....[BURAYA KODLAR GİRECEK]........................

 Else  

  Response.Write strEmail & " adresi doğru görünmüyor.<BR>"

 End If

Programınızın gereği olarak döngünün ELSE bölümünü değiştirebilirsiniz.

 
 
  Bugün 149 ziyaretçi (236 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol