Basit üyelik sistemi

GürayKaradeniz
25-05-2010, 23:38   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
3 mesaj
Kayıt Tarihi:Kayıt: Oca 2010

Arkadaşlar Asp Vb scriptte basit bir üyelik sistemi yapmam gerekir. Veri tabanı kaydı ve burdan sorgulayıp eğer kayıtlı olan isim varsa başka bir sayfaya yönlendirme yapılacak yani kayıt.asp den girilen bilgiler veri tabanına kayıt edilcek daha sonra giriş.asp sayfasında bilgiler kontrol edilcek eğer doğru ise üyeler.asp diye bir sayfaya yönlendirilecek veri tabanı olarak access kullanıyorum yardım ederseniz sevinirim.

Tuncay Besikci
04-06-2010, 01:20   |  #2  
Yeni Üye
Teşekkür Sayısı: 0
36 mesaj
Kayıt Tarihi:Kayıt: Ağu 2007

Bu isin en guvenli yolu, ayrica yapacagin bir ASP dosyasi, bu dosyayi uyelik gerektiren her sayfanin basina include komutu ile koymalisin. Ornek olarak, dosyamizin adi kontrol.asp olsun. Icerigi de suna benzer olmali:
<%
If Session("uye") <> True Then
response.redirect("giris.asp")
End If
%>
Bu dosyanin gorevi uye adindaki session degerini kontrol etmek ve dogru degilse (false) giris.asp dosyasina yonlendirmek. Burada kisa olsun diye session kullandim. Session kullanmanin dezavantaji bir sure sonra tekrar giris.asp sayfasina yonlenecek ve uye tekrar giris yapmak zorunda kalacak. Cozumu ise dogru/yanlis bilgisini uye adi ve sifresi ile birlikte cookie nesnesine kaydetmektir. Burada da dikkat edilmesi gereken uyeadi ve sifreyi de sifrelemektir (encryption), cunku cookiler herkes tarafindan okunabilir. Sifre ile girilmesini istedigin her ASP sayfasinin ilk satirina da asagidaki gibi bir komut koymaliyiz.

<!--#include file="kontrol.asp" -->

' Uyelerin giris yapacagi giris.asp sayfasi ise suna benzer olacak:
'Once uyeadi ve sifre bilgisi post edilmis mi ona bakiyoruz.
<%
gelenuyeadi=request.form("uyeadi")
gelensifre=request.form("sifre")
  'Eger gelen uye adi ve sifre bilgisinin uzunlugu sifirdan buyukse (yani en az bir karakter girilmisse)
if len(gelenuyeadi)>0 and len(gelensifre)>0 then
  ' Burada veritabanindan uyeadini ve sifreyi kontrol edecegiz. Once baglantiyi sagliyoruz
Set baglanti = Server.CreateObject("Adodb.Connection")
baglanti .Mode = 3
baglanti .open = "Provider=Microsoft.Jet.Oledb.4.0;Data Source="& Server.MapPath("/veritabani.mdb") &";Jet OLEDB:Database Password=mdb-sifresi;"
' ve sorgulama yapmak icin bir recordset olusturuyoruz
set recordset =server.createObject("adodb.recordset")
' sorguyu yaziyoruz. burada SQL Injection saldirilarindan bir nebze de olsa korunmak icin replace komutu ile tirnak karakterlerini uyeadi ve sifreden silersek daha iyi olur.
sorgu= "Select * from uyeler where uyeadi='" & replace(gelenuyeadi,"'","") & "' and sifre='" & replace(gelensifre,"'","")  & "' "
' ve sorguyu calistiyoruz.
recordset.open sql,baglanti
'son olarak gelen bilgileri database ile karsilastirip dogrulugunu kontrol edecegiz. Eger soru en az bir kayit dondururse bu uye sifreyi dogru girmis demektir.
If not recordset.eof then
' kayit bulundu, uye adi ve sifre dogru, session degerini ata ve uyeler sayfasina yonledir
session("uye")=true
response.redirect("uyeler.asp")
else       'degilse giris formunu tekrar goster
call girisformu
end if
'uyeadi ve sifre hic girilmemisse giris formunu goster

end if%>
'giris formu alt rutini
<%sub girisformu%>
<form name="form1" action="giris.asp" method="post">
Uye Adi: <input name="uyeadi" type="text" value="" /><BR>
Sifre: <input name="sifre" type="password" value="" /><BR>
<input name="submit" type="submit" value="Giris" />
</form>
<%end sub%>

Kodlari aklimdan yazdim ve test etmedim, imla hatalari olabilir ama en azindan mantik olarak anladigini umarim.