PHP Cookies (Çerezler)
Cookie nedir?
Cookie bir ziyaretciyi tanımak, birbirinden ayırmak ve takip etmek amacıyla; kullanıcının bilgisayarında (tarayısında) saklanan, belli bir sonlanma tarihi, değeri ve adı olan küçük dosyalardır. Kısaca oturum yönetimidir.
Sessiondan farkı web sunucusunda yani kullanıcının tarayıcısında tutulmasıdır. Bu nedenle kullanıcının veriye ulaşması , okuması veya değiştirmesi Sessionda göre daha kolaydır.
Cookie (Çerez) nasıl oluşturulur?
Cookie ler "setcookie" komutu ile oluşturulur.
setcookie("ürün", "kitap");
Setcookie komutunun sahip olduğu parametreleri inceleyelim.
Name: Cookie' nin adıdır.
Value: Cookie' nin aldığı değerdir. Üyenin adı, ürünün adı yada fiyatı gibi
Expire: Date: Cookie' nin ne zaman sonlanacağını belirleriz yani yaşam süresidir. Yazılmaz ise tarayıcı kapandığında cookie sonlandırılır.
Path: Cookie' nin siztemizin hangi kısımlarında kullanılacağını belirlemeze yarar.
Domain information: Birden çok sunucuda bulunan sitelerde kullanılır.
Secure parameter: Güvenlik parametresidir. 1 ve 0 değerleri alır.
Çerez oluştururken bu parametere sırası aşağıdaki gibidir.
setcookie(isim, değer, sonlanma_tarihi, path, domain_bilgisi, güvenlik_parametresi);
Bir cookienin oluşup oluşmadığını birçok şekilde öğrenebiliriz. Tarayıcı çerezler kısmından, if else yöntemi gibi. Bir örnek verecek olursak;
if (setcookie("ürün", "kitap")) {
echo "Cookie oluştu";
}else {
echo "Cookie oluşmadı.";
}
Html kodları ile yazıldığında hata mesajı alabiliriz (buffer) bu durumda sayfanın en üstüne <?php ob_start();?> en altına ise <?php ob_flush(); ?> yazmamız gerekir.
Cookie (Çerezleri) ları okuma
Oluşturduğumuz cookie' ları "$_COOKIE" komutu ile okuruz.
echo $_COOKIE["ürün"]; şeklinde.
Cookie' lerin süresi
setcookie("ürün", "kitap", time()+60); // 1 dakika
setcookie("ürün", "kitap", time()+3600); // 1 saat
setcookie("ürün", "kitap", time()+86400); // 1 gün
Cookie' lerin silinmesi
cookieların silinmesinin birçok yöntemi vardır. Benim kullandığım yöntem cookie değerini boş bırakarak ekside bir süre yazmak.
setcookie("ürün","", time()-31556926,"/");
Cookie' ların güvenliğine dikkat etmeniz gerekir. Cookie dan dönen değerlerin güvenliğini kontrol etmenizi ve md5 gibi parametreler ile şifrelemenizi öneririm.