AdminGuide
BETA

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.

Ö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")
%>



Bunlar da ilginizi çekebilir...

 



4743 defa okunmuş.
Etiketler : login, session, ADODB.Recordset, form, Request.Form, VbScript, username, password, HTMLEncode
Serdar Kardan

Serdar Kardan

() - Web Tasarımı, Web Programlama

 
RSS

e-Posta Aboneliği

Delivered by FeedBurner

 

En çok Okunanlar
- Windows 7 Geçici Profil Açma Sorunu ( 13963 )
- Gizli Sürücü ve Donanımları Kaldırmak ( 9166 )
- c# ile windows tabanlı program geliştirme ( 9128 )
- Domain Ortamında Saat Senkronizasyonu Problemi ( 6926 )
- Unutulan SQL SA Şifresini Değiştirme ( 5755 )