Bu derste, web sitenizde kullanabileceğiniz ve temel olarak bir login sisteminde ihtiyaç duyacağınız, güvenlik önlemleriyle birlikte bir kod örneğini inceleyeceğiz ve veritabanında kayıtlı kullanıcı adlarını kontrol ederek giriş yapmayı öğreneceğiz.
Öncelikle bir form hazırlayarak ziyaretçinin kullanıcı adı ve şifresini girmesini sağlayacağız. Aşağıdaki kod bloğunu sayfanızın istediğiniz noktasında kullanabilirsiniz. Session(“Active”) nasıl oluşturuldu sorusunun cevabı ise login.asp sayfasında olacak…
Bu sayfanın giris.asp olduğunu farzedelim…
<% If Session("Active")= 0 Then %> <h2>Hosgeldiniz</h2> <form action="login.asp" method="post" name="login" id="login"> <table width="98%" border="0"> <tr> <td width="30%"><div align="right">Kullanici/User</div></td> <td width="70%"><input name="UserName" type="text" id="UserName" size="12" maxlength="15" /> </td> </tr> <tr> <td><div align="right">Sifre/Pass</div></td> <td><input name="Password" type="password" id="Password" size="12" maxlength="10" /></td> </tr> <tr> <td colspan="2"><input type="submit" name="Submit" value="Giris/Login" /></td> </tr> </table> </form> <% Else End If %> <h2>Hoşgeldiniz, <% =Session("User") %></h2> ... ...
Bu sayfadaki açıklanması gereken noktaları gözden geçirelim.
– Başlangıçtaki Session(“Active”) değeri aşağıdaki login.asp içerisinde tanımlanıyor. Kullanıcı giriş yaptığında 1, çıkış yaparken de 0 değerini vereceğiz. Eğer bu değer 0 ise giriş yapabilmesi için form geliyor. Aksi takdirde yani değer 1 ise sayfanın geri kalanı görüntüleniyor.
– Form, girilen bilgileri login.asp’ ye gönderiyor ve post metodunu kullanıyor. Böylece adres çubuğunda kullanıcı adı ve şifre bilgileri görüntülenmiyor.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1254"%> <% UserName = Server.HTMLEncode(Request.Form("UserName")) 'HTML.Encode metodu ile formdan 'girilebilecek SQL ya da HTML 'verileri ASCII koda dönüştürülüyor. UserName = Replace(UserName, "'", "", 1, -1, 1) 'Dönüştürülmüş kod içerisinde 'tehlike yaratabilecek SQL kodlarını 'temizlemek için " ' " işaretleri 'kaldırılıyor Password = Server.HTMLEncode(Request.Form("Password")) Password = Replace(Password, "'", "", 1, -1, 1) If Len(UserName) = 0 or Len(Password) = 0 Then Response.Write "Giris Yapabilmek Için Kullanici Adi ve Sifre Girmeniz Gerekmektedir.<br>" Response.Write ("<a href=""default.asp"">Giris Ekranina Geri Dönün...</a>") Response.End() Else Set stDosya = Server.CreateObject("ADODB.Connection") stDosya.Open ("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/db.mdb")) Set rsUser = Server.CreateObject("ADODB.Recordset") qUser ="SELECT * FROM Kullanici WHERE User='"&UserName&"'" rsUser.Open qUser, stDosya ' veritabanı bağlantımızı yapıp formdan gelen kullanıcı adına göre sorgulayıp ' kayıtlarımızı çektik. Eğer kayıt seti boş geldi ise yani ' gelen kullanıcı adı kayıtlı değilse ' bir hata mesajı vermemiz gerekecek. If rsUser.EOF Then stDosya.Close() Set stDosya = Nothing Response.Write ("Kullanici Adi Bulunamadi...") Response.Write ("<br><br><a href=""giris.asp"">Giris Ekranina Geri Dönün...</a>") Else If Password = rsUser("Pass") Then Login = 1 User = rsUser("User") stDosya.Close() Set stDosya = Nothing Session("Active") = Login ' daha önce bahsettiğimiz Session ' burada oluşturuluyor. ' Session ile ilgili ayrıca bir konu işleyeceğiz. Session("User") = User Response.Redirect("giris.asp") ' Giriş tamamlandı ise kullanıcıyı ' geldiği sayfaya geri yönlendiriyoruz. Else stDosya.Close() Set stDosya = Nothing Response.Write "Sifreyi Hatali Girdiniz..." Response.Write ("<br><br><a href=""giris.asp"">Giris Ekranina Geri Dönün...</a>") End If End If End If %>
Bu kod bloğu birçok uygulamada kullanılabilir. İhtiyacınıza rahatlıkla uyarlayabilirsiniz. Kodla ilgili sormak ya da eklemek istediklerinizi yorumlarda tartışabiliriz.
Çıkış işlemi için de örneğin logout.asp adıyla oluşturacağınız bir dosya içerisinde sadece aşağıdaki kod bloğunu kullanmanız yeterli olacaktır.
<% Session("Active") = 0 Session("User") = "" Session.Contents.RemoveAll() Session.Abandon() Response.Redirect ("giris.asp") %>