Login Sistemi ve Session Kullanımı


1.07.2011 / Serdar Kardan



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 forumumuzda paylaşabilirsiniz..

Çı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")
%>



1.07.2011 - 11628


Etiketler : login, session, ADODB.Recordset, form, Request.Form, VbScript, username, password, HTMLEncode
Leave a Comment:

Bunlar da ilginizi çekebilir
Microsoft Office Outlook başlatılamıyor. Outlook penceresi açılamıyor.
Microsoft Office Outlook başlatılamıyor. Outlook penceresi açılamıyor.
G Data Business Notification Ayarı
G Data business Notification ayarlarının yapılmasını öğreniyoruz.
C# - Tarih – Zaman Metodları - 3
Bu bölümde tarih ve zaman değerlerini karşılaştırma işlemlerini ele alacağız.
 

En çok Okunanlar



Bumerang - Yazarkafe