PHP süper küresel $_COOKIE, HTTP isteğiyle birlikte geçerli PHP betiğine geçirilen değişkenleri çerez biçiminde depolar. $HTTP_COOKIE_VARS da aynı bilgileri içerir, ancak bir süper küresel değildir ve artık kullanım dışı bırakılmıştır.
Çerez Nedir?
Çerezler, istemci bilgisayarında bir sunucu tarafından depolanan metin dosyalarıdır ve izleme amacıyla tutulurlar. PHP, HTTP çerezlerini şeffaf bir şekilde destekler. Çerezler genellikle bir HTTP başlığında ayarlanır. JavaScript ayrıca bir çerezi doğrudan bir tarayıcıya ayarlayabilir.
Sunucu betiği tarayıcıya bir çerez kümesi gönderir. Bu bilgiyi gelecekteki kullanım için yerel makinede depolar. Bir sonraki sefer, tarayıcı web sunucusuna herhangi bir istek gönderdiğinde, bu çerez bilgilerini sunucuya gönderir ve sunucu bu bilgiyi kullanıcıyı tanımlamak için kullanır.
setcookie() Fonksiyonu
PHP, HTTP yanıtıyla birlikte istemciye gönderilecek bir çerez nesnesi oluşturmak için
setcookie fonksiyonunu sağlar.
setcookie(name, value, expire, path, domain, security);
Parametreler
- Ad − Saklanan çerezin adı.
- Değer − Bu, adlandırılmış değişkenin değerini ayarlar.
- Son Kullanma Tarihi − Bu, 1 Ocak 1970 00:00:00 GMT'den bu yana saniye cinsinden gelecekteki bir zamanı belirtir.
- Yol − Çerezin geçerli olduğu dizinler.
- Alan Adı − Çok büyük alanlarda alan adını belirtir.
- Güvenlik − HTTPS için 1. Normal HTTP için varsayılan 0.
Çerezler Nasıl Ayarlanır
Aşağıdaki
örneğe bir göz atın. Bu betik, henüz ayarlanmamışsa
username adlı bir çerez ayarlar.
Örnek
<?php
if (isset($_COOKIE['username'])) {
echo "<h2>Cookie username already set: " . $_COOKIE['username'] . "</h2>";
} else {
setcookie("username", "Mohan Kumar");
echo "<h2>Cookie username is now set.</h2>";
}
?>
Bu betiği Apache sunucusunun belge kökünden çalıştırın. Bu mesajı çıktı olarak görmelisiniz.
Cookie username is now set
Bu betik tekrar çalıştırıldığında çerez artık ayarlanmış olacaktır.
Cookie username already set: Mohan Kumar
Örnek
Müşterinin sonraki ziyaretinde çerezleri almak için:
<?php
$arr=$_COOKIE;
foreach ($arr as $key=>$val);
echo "<h2>$key => $val </h2>";
?>
Tarayıcı aşağıdaki çıktıyı gösterecektir:
Çerezler Nasıl Kaldırılır
Bir çerezi silmek için, çereze daha önce süresi dolmuş bir tarih ayarlayın; böylece tarayıcı çerez kaldırma mekanizmasını tetikler.
<?php
setcookie("username", "", time() - 3600);
echo "<h2>Cookie username is now removed</h2>";
?>
Tarayıcı şimdi aşağıdaki çıktıyı gösterecektir:
Cookie username is now removed
Dizi Gösterimini Kullanarak Çerezleri Ayarlama
Ayrıca çerez adında dizi gösterimini kullanarak dizi çerezlerini de ayarlayabilirsiniz.
setcookie("user[three]", "Guest");
setcookie("user[two]", "user");
setcookie("user[one]", "admin");
Eğer çerez adı noktalar (.) içeriyorsa, PHP bunları alt çizgilerle (_) değiştirir.