Üyelik sistemimi kendim yazıyorum. Her şey düzgün işliyor.
Giriş yapıldığında eğer her şey sorunsuzsa, kullanıcı ve oturum bilgilerini COOKIE veya SESSION'a değil veritabanındaki gerekli yere kaydediyorum. Ancak sorunum şu ki, örneğin ID'si 5 olan kullanıcı giriş yaptığında ben onun 5 numaralı üye olduğunu nasıl tanıyacağım? Özellikle de giriş yaparken "beni hatırla" seçeneği işaretlenmişse, aynı bilgisayarda modemini kapatıp açtığında, yani IP değiştirdiğinde bu yeni IP'li kişinin yine 5 numaralı üye olduğunu nasıl tanıyacağım? Bunun için illa ki COOKIE mi kullanmak gerekiyor?
Veritabanında Session Tutma
4
●1.357
- 19-05-2010, 18:41:41Kimlik doğrulama veya yönetimden onay bekliyor.Evet $_COOKIE kullanacaksın, yalnız cookie editlenebilir olduğundan önemli bilgi tutmayacaksın. Tanımak için kendine göre bir algoritma geliştirebilirsin.
mantığından bahsedersek, misal üye beni hatırlayı işaretledi, giriş yaptıktan sonra üye id ve kullanıcı adı veya istediğin bir alan ile md5 vb. hash yapar karşılaştırırsın.
Yani kullanıcı giriş yaptı diyelim
$uye_id = 15; $uye_adi = 'falanca'; $cookie_ek = 'buraya kendin bileceğin bir şey eklersin'; $uye_hash = md5($uye_adi.$cookie_ek); //uye_id ve oluşturduğun cookie_ad değerini cookie olarak yazarsın.
Daha sonra sitende öncelikle bunu kontrol edersin.
if($_COOKIE['uye_id']){//çerez varsa //sql sorgusunu yaparsın bakarsın o idde üye var mı $sql = 'select * from uyeler where uye_id='.$_COOKIE['uye_id']; //sorguyu yapar sonuca bakarsın //eğer sonuç varsa diğer hash eklediğin alanla doğru mu diye bakarsın $vtden_gelen = md5($sonuc['uye_adi'].$cookie_ek); if($vtden_gelen == $_COOKIE['uye_hash']){//cookieden gelen hash ile vtden gelen doğru mu //cookie doğru işlemler } else{ //cookie yanlış işlemler } }Söylediğim gibi kendine göre bir algoritma oluşturabilirsin. İstersen direk ayrı bir hash oluşturur onu veritabanına kaydeder ve cookie olarak onu atarsın.
Burada yazıp geçiyoruz ama get, post, cookie bütün değerleri önce temizleyip sonra kullanmayı unutma.