09 Eylül 2010 Perşembe

Kategoriler

Yazar'dan mesaj:

<%response.write "Asp Ögreniyorum"%>

Asp ögrenmek veya gelistirmek isteyenlerin sayfasi

Tavsiye ettigim yazilar

Son yazılar

Rasgele yazılar

Son yorumlar

Randevular

Randevum boş

Üyelik Sistemi Yapimi

ASPFOREVER Yönetim - 26.01.2010 15:01:00 - Asp Kodlama

//giris.asp
<% if Session("durum")="giris_yapmis" then %>
<% Response.Redirect "giris_sayfasi.asp" %>

<%else %>
<FORM name=loginform action="giris_kontrol.asp" method=post>
<FONT face=verdana size=2>Kullanici Adi:</FONT></td><td><input name=kullanici_adi></td></tr>
<tr><td><FONT face=verdana size=2>Sifre:</FONT></td><td><input type=password name=sifre></td></tr>
<tr><td><center><input type=submit value=Gönder></center></FORM>
<% end if %>

//giris_kontrol.asp
<%
Set baglanti = Server.CreateObject("ADODB.Connection")
baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath
("database/db.mdb")
%>


<%
'Sql Injection 'i Önlemek ve HTML Kodlarini Pasif Hale Getirmek Için
Kullanilan
Karakter Temizleme Metodu
function guvenlik(data)
data = Replace (data ,"`","",1,-1,1)
data = Replace (data ,"=","",1,-1,1)
data = Replace (data ,"&","",1,-1,1)
data = Replace (data ,"%","",1,-1,1)
data = Replace (data ,"!","",1,-1,1)
data = Replace (data ,"#","",1,-1,1)
data = Replace (data ,"<","",1,-1,1)
data = Replace (data ,">","",1,-1,1)
data = Replace (data ,"*","",1,-1,1)
data = Replace (data ,"And","",1,-1,1)
data = Replace (data ,"'","",1,-1,1)
data = Replace (data ,"Chr(34)","",1,-1,1)
data = Replace (data ,"Chr(39)","",1,-1,1)
data = Replace (data ,"select","",1,-1,1)
data = Replace (data ,"join","",1,-1,1)
data = Replace (data ,"union","",1,-1,1)
data = Replace (data ,"where","",1,-1,1)
data = Replace (data ,"insert","",1,-1,1)
data = Replace (data ,"delete","",1,-1,1)
data = Replace (data ,"update","",1,-1,1)
data = Replace (data ,"like","",1,-1,1)
data = Replace (data ,"drop","",1,-1,1)
data = Replace (data ,"create","",1,-1,1)
data = Replace (data ,"modify","",1,-1,1)
data = Replace (data ,"rename","",1,-1,1)
data = Replace (data ,"alter","",1,-1,1)
data = Replace (data ,"cast","",1,-1,1)
guvenlik=data
end function
%>


<%
If trim(guvenlik(request.form("kullanici_adi")))="" then
Response.Write
"<center><br><br><br><br><br><br><br><b>UYARI:</b><br><br>Kullanici
adinizi yaziniz!<br><br><a href='javascript:history.back(1)'><FONT
color=#e45f0e><u>Geri Dön</u></a></b></center>"
response.end
end if

If trim(guvenlik(request.form("sifre")))="" then
Response.Write
"<center><br><br><br><br><br><br><br><b>UYARI:</b><br><br>Sifrenizi
yaziniz!<br><br><a href='javascript:history.back(1)'><FONT
color=#e45f0e><u>Geri
Dön</u></a></b></center>"
response.end
end if
%>

<%
Set rs = Server.CreateObject("Adodb.Recordset")
Sorgu = "select id, kullanici_adi, sifre from uyeler where kullanici_adi =
'" &
guvenlik(request.form("kullanici_adi")) & "' and sifre = '" &
guvenlik(Request.form
("sifre")) & "'"
rs.Open Sorgu, Baglanti, 1, 3
If rs.BOF And RS.EOF Then
Response.Write
"<center><br><br><br><br><br><br><br><b>UYARI:</b><br><br>Kullanici
adiniz ya da sifreniz yanlistir!<br><br><a
href='javascript:history.back(1)'><FONT
color=#e45f0e><u>Geri Dön</u></a></b></center>"
Else
Session("durum") = "giris_yapmis"
Session("id") = rs("id")
Session("kullanici_adi") = rs("kullanici_adi")
Response.Cookies("TekTech")("kullanici_adi") = Request.Form("kullanici_adi")
Response.Cookies("TekTech")("sifre") = Request.Form("sifre")
Response.Cookies("TekTech").Expires = Now()+15
Response.Redirect "giris_sayfasi.asp"
End If
%>


//giris_sayfasi.asp
<%
Set baglanti = Server.CreateObject("ADODB.Connection")
baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database/db.mdb")
%>


<% if Session("durum")="giris_yapmis" then %>

<%
Set rs = Server.CreateObject("Adodb.Recordset")
id = Session("id")
Sorgu = "Select * from uyeler where id= " & id
rs.Open Sorgu, Baglanti, 1, 3
if rs.eof then
Response.Write "<center>Üye bilgisi bulunmamaktadir!</center>"
else
%>

<b>Kullanici Adi:</b> <%=rs("kullanici_adi")%>
<a href="cikis_yap.asp"><b>ÇIKIS YAP</b></a>
<% end if %>

<%else %>
</p>
<center><br><br><br><br><br><br><br><b>UYARI:</b><br><br>Lütfen giris yapiniz!<br><br><a href='giris.asp'><FONT color=#e45f0e><u>Anasayfa</u></a></b></center>
<% end if %>

//cikis_yap.asp
<%
Session("durum")=""
Response.Cookies("TekTech")("kullanici_adi")=""
Response.Cookies("TekTech")("sifre")=""
Session("id")=""
%>

<% Response.Redirect "giris.asp" %>
--------------------------------
Yukaridan da anlasilacagi üzere üyelik sistemi yapimi oldukça kolaydir. Fakat, burada önemli olan session ve cookie ‘yi en iyi sekilde kullanabilmektir. Session sunucu tarafinda, cookie ise istemci tarafinda tutulur. Ayrica, giris_kontrol.asp adli dosyada yer alan sql tümcesinde uyeler adli tablodaki tüm sütunlari seçip verileri bellege almak yerine yalnizca o anda ihtiyacim olan sütunlari seçtirdim. Bunu yapmanin sebebi, üye girisinin daha hizli olmasidir. Örnegin, veritabanimizda 500 üyemiz var. Uyeler tablomuzda id, kullanici_adi, sifre gibi sütunlarin yani sira; üyenin adi, soyadi veya buna benzer bilgilerini içeren sütunlar olsun. Üye girisinde kullanici adi ve sifre eslestirmesi yapilirken üyenin adi ve soyadi bir isimize yaramayacaktir. Üye girisinde isimize yarayacak olan tablolar id, kullanici_adi ve sifre ‘dir. Üye girisinde bu yöntemi kullanmak, üye girislerinde ki agirligi hafifletecektir.
Bir konuya daha deginmek istiyorum. Kullanici adi ve sifre form kutucuklarinin kontrollerini yalnizca javascript kullanarak yapmak sakincalidir. Ziyaretçi bu kutucuklarin bulundugu sayfayi kendi bilgisayarina kaydettikten sonra javascript kontrollerinin bulundugu satirlari silip formda ki bos bilgileri sayfaya post edebilir. Bu da dogal olarak ziyaretçinin sayfada hata ile karsilasmasina neden olacaktir. Yukarida vermis oldugum örnekte javascript kontrolü yerine asp kodlari ile kontrol yapilmaktadir. Ayrica; giris_kontrol.asp adli sayfanin en basinda görmüs oldugunuz guvenlik adli fonksiyon, üye girislerinde sql injection ‘u önlemek ve html kodlarini pasif hale getirmek için kullanilmistir.

Okan YILMAZ
Trabzon

"Üyelik Sistemi Yapimi" konusuna 1 yorum yapılmış!


  1. Hakan Yilmaz demiş ki,

    04.07.2010 21:19:56

    Ayıp Ayıp Sağdan Soldan ALıp siteye kendiniz yapmış gibi kontroletmeden koyuyorsunuz bi bakın çalışmıyor. Hemen bütüm forumlarda var ama çalışmıyor Boşuna Uğraşmayın

Ben de Yorum Yapmak İstiyorum

Yazmadan önce; Lütfen yazım kurallarına ve dilbilgisine dikkat edelim. Eğer yorumunuzun çok uzun olduğunu düşünüyorsanız (Bu en fazla 400 karakter olabilir.) 2 ayrı mesaj olarak yazabilirsiniz. Yorumlarınız için teşekkürler.


Yukarıda yazı olarak gördüğünüz sayıları rakam olarak yazınız.