Cookie sürekli kontrol edip doğrulanmalıdır, bunun için sistemde kullandığınız ust.php gibi bir dosyaya, her çalıştırışta kontol edilmek üzere bir şeyler ekleyebilirsiniz. Ayrıca cookie'yi atarken değerlerin başına sonuna bir şeyler ekleyebilirsiniz daha sağlıklı olacaktır.
yani cookie atarken
setcookie("kullanici", $kullaniciadi);yerine
$kullanicicookie = "1234".$kulaniciadi."site.com-/";
setcookie("kullanici", $kullanicicookie);gibi yaparsanız daha sağlıklı olur. Çoğu sistem şifreleri md5 olarak tutar zaten veritabanında, bu kullanıcı gizliliğine ve özeline saygıdan ötürü gerekli bir şeydir ve yazılımcıların buna dikkat etmesi önemlidir bence. Şifreleri veritabanına md5 olarak saklayıp o şekilde doğrulayıp, cookie atarken kullanıcı adına yaptığınız gibi karakterler ekleyebilirsiniz. Ancak bu daha çok tek kullanıcılı (admin paneli v.s. gibi) girişler için dosya üzerinden doğrulayabileceğin sistemler için uygundur. yani cookie'yi bu şekilde tanımladıktan sonra dosyaya girdiğin bir veriyle karşılaştırırsın. Yine bu baş son olayını tutmak istiyorsan şöyle bir şey yapabilirsin:
3 adet cookie tanımlarsın, kullanıcının id nosu, başna sonuna karakter eklenmiş şekilde kullanıcı adı, başına sonuna karakterler eklenmiş şekilde md5li şifre. böylece kontrol sırasında ilgili id ile ilgili verileri çekip, karakterler eklenmiş şekilde birleştirip cookielerle karşılaştırabilirsiniz. Gerçi bu da karışık gelir.
Sanırım onun için en iyisi, kullanıcı adı ve şifreyi tanımlayıp her sayfanın başında bir sorguyla kontrol etmek. Diyelimki kullanıcı tablonuz ve burada da 4 sütununuz var. id, nick, sifre, durum olarak. Girişte bilgilerin doğruluğunu kontrol edip cookie ile tanımladıktan sonra sayfa başlarında bu kontrol işlemi yenileyin.
$gu = $_COOKIE['user'];
$gs = $_COOKIE['pass'];
$sor = mysql_query("SELECT id FROM uyeler WHERE nick = '$gu' and sifre = '$gs' and durum = 1");
$kontrol=@mysql_num_rows($sor);böylece nick'i cookiedeki isim, şifresi cookiedeki şifre ve durumu 1 olarak aktif ise kullanıcı, doğrulanacaktır. bunun kontrolünü yaparsanız, eğer aksi bir durum varsa temizlersiniz cookieleri ve üye girişi olmadığını basarsınzı ekrana.
if($kontrol<1){
setcookie(user, "", time()-1);
setcookie(pass, "", time()-1);
echo "Üye giriş bilgileri doğrulaması hatalı. Lütfen girişi yenileyin.";
}gibi...
Umarım anlatabilmişimdir, cookieleri birbiriyle iletişimde ve bu şekilde doğrulayarak kullandığın sürece sorun olmaz sanıyorum.