Asp Dersi - Üyelik Sistemi Yapmak
-
bi arkadaş vardı üyelik sistemiyle ilgili bişiler soruyodu :) bende böle bi ders yazim dedim .Başkaları da istiyodu.Neyse derse geçim.Şimdiden sölim sadece login olayını yazıyorum üye ol şifremi unuttum üyeler sil cart curt yok daha sonra ekleyebilirim.
Üyelik sisteminde en önemli şey session yani oturum nesnesi bu nesne sayesinde oturum açıldığındaki bilgileri saklayabiliyouz ta ki biz oturumu yada pencereyi kapatana kadar.Session nesnesinde kullanıcının her bilgisini saklayabiliriz.Neyse biz bi default.asp ye form yazalım önce:
default.asp'nin 1. hali =P (sonra biraz değişiklik yapıcaz)<form action="login.asp" method="post">
Üye Adı : <input type="text" name="kullanici"><br>
Şifre : <input type="text" name="sifre"><br>
<input type="submit" value="Giriş Yap!">
</form>
burda bi form oluşturdum action="login.asp" de login.asp ye yöneniceğini yazdım method ta post oldu.Şimdi bi veritabanı hazırlayalım.Adı uyelik.mdb olsun
uyelik.mdb
Tablolar : uyeler
Uyeler : id,kullanici,sifre
bu şekilde bi veri tabanı hazırlayalım.İçine de bi kaç kullanıcı ekleyin şifreyle örn. üye adı : admin şifre : admin olsun
veri tabanıda bitince login.asp dosyasını yazabilirizLogin.asp
'burda default.asp'den gelen bilgileri çekelim
kullanici = Request.Form("kullanici")
sifre = Request.Form("sifre")
'gelen bilgiler boş ise Boş bırakma!!! yazsın
if kullanici="" or sifre="" then
response.write "boş bırakma"
response.end 'aşağıdakileri karşıtırmaya gerek yok burda sayfa dursun
end if
'veri tabanı bağlantısı :)
Set Bag = Server.CreateObject("ADODB.Connection")
bag.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("uyelik.mdb")
'tablo bağlantısı
Set baglanti = Server.CreateObject("ADODB.Recordset")
tablo = "Select * From uyeler Where kullanici= '"&kullanici&"' and sifre = '"&sifre&"'"
baglanti.open tablo,bag,1,3
Set Kontrol = Bag.ExeCute(tablo)
'tablo bağlantısının 2. satırında kullanici= '"&kullanici&"' and sifre = '"&sifre&"'" burada veri tabanındaki kullanıcıyı
'default.asp'den gelen kullanıcıya eşitledik.
'buradaki kullanici veritabanındaki '"&kullanici&"' default.asp'den gelen kullanıcı
'kullanıcı adı yada şifre yanlış ise!
if kontrol.eof then
Response.Write "Hatalı Kullanıcı Adı yada Şifre"
else 'yanlış değilse session belirleyelim
Session("girdimi") = "eet" 'girdimi = eet dersek bi sayfada aşağıdaki bilgileri o sayfaya taşıyacak örn. kullanıcı adı
Session("id") = Kontrol("id")
Session("kullanici") = Kontrol("kullanici")
Response.Redirect "default.asp" 'kayıttan sonra ana sayfaya yönlensin
end if
'bağlantıları kapatalım
uye.close
Set uye= Nothing
bag.Close
set bag = nothing
sayfa bitti.Şimdi sessionlar da belirlendi ana sayfaya yani default.asp dosyasına bi kaç kod daha ekleyelim.Safamız şöle idi
<form action="login.asp" method="post">
Üye Adı : <input type="text" name="kullanici"><br>
Şifre : <input type="text" name="sifre"><br>
<input type="submit" value="Giriş Yap!">
</form>
Default.asp yeniden =)
<%
'session oluşturmuştuk girdimi = eet değilse(Not var!) bu sayfa çıksın
if Not Session("girdimi") = "eet" then
%>
<form action="login.asp" method="post">
Üye Adı : <input type="text" name="kullanici"><br>
Şifre : <input type="text" name="sifre"><br>
<input type="submit" value="Giriş Yap!">
</form>
<%else
'eğer giriş yapıldıysa bu çıksın
%>
Hoşgeldin , <%=Session("kullanici")%><br> <!--Sessionımızı kullandık kullanici die belirlemiştik-->
<a href="exit.asp">Çıkış</a>
<%end if%>
şimdi bide exit.asp yapmak gerekio oda aşağıdaki gibi olur
Exit.asp
<%
Session.Abandon 'bu sessionları kapatma komutu
Response.Redirect "default.asp" 'oturum bitince ana sayfaya gitsin
%>
session.abandon çıkış yapmak için kullanılan komut bazıları
Session("girdimi") = "" bu şekilde girdimi'yi boşa eşitlio bu şekilde de çıkar fakat bu sebepsiz yere serverı yorar -
hocam eline klavyene sağlık :) asp ye başlamayı düşünüodum ben de, biraz ilerliyim çok işime yarıyacak bu döküman, bi de üye olmadan sayfa görünmesin şeysi yapmayı anlatsan süper olurdu :)
-
Aldığımız kullanici ve sifre değişkenlerini direk sql'e sokmasak daha iyi olur..
-
üyelerin giremiceği sayfaları da şöle yapabiliriz
sayfa.asp olsun
<%
if Session("girdimi") = "eet" then 'session kullandıq
%>
SAYFA!!
<%else
Response.Write "Bu sayfa üyelere açıktır" ' değilse napıcaz!
end if
%> -
nerde replace :D
-
replace gereq yoq!
-
nasıl replace'e gerek yok hoca??Şu an yazdığın kodlar başlı başlına güvenlik açığı..kullanıcı adı ve şifre değişkenlerini alıp replace etmeden hurraa sql'e sokup sorgularsan olmaz.
Sql injection açığı var..
-
ya abi haqlısın bişi demedim burda mantığını kavratmak için yazdım ben bunu yoqsa replance falan da eklerim flood ip adreslerinin kaydedilmesi falan yapardım :)
-
kodlar amatörce yazılmış ama dediği gibi diğer bilmeyen arkadaşların tekniği kapması için yararlı
