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 - 11605


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

Bunlar da ilginizi çekebilir
C# - Base64 ile Görseli String e Çevirmek
Base64 Encoding, binary verileri metne dönüştürerek saklamaya yarayan bir tekniktir. Buna en güzel örnek bir fotoğrafın encode edilerek veritabanı içinde saklanması gösterilebilir.
C# - LINQ Join
C# ile çalışırken iki farklı tablo kullanarak Join ile data çekme ihtiyacı duyduğunuzda bu kod yapısını kullanabilirsiniz.
Login Sistemi ve Session Kullanımı
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.
 

En çok Okunanlar



Bumerang - Yazarkafe