PHP 8'de çerezler (cookies), bir kullanıcının tarayıcısında veri depolamak için kullanılan küçük dosyalardır. Çerezler genellikle kullanıcının oturumunu, tercihlerini veya kimliğini izlemek amacıyla kullanılır.
1. Cookie Oluşturma
PHP'de çerez oluşturmak için setcookie()
fonksiyonu kullanılır. Bu fonksiyon, istemcinin tarayıcısına bir çerez gönderir. Temel kullanımı şöyledir:
setcookie(name, value, expire, path, domain, secure, httponly);
-
name
: Çerezin adı. -
value
: Çerezin değeri. -
expire
: Çerezin sona erme zamanı (Unix zaman damgası olarak). -
path
: Çerezin geçerli olduğu dizin (genellikle/
olarak ayarlanır). -
domain
: Çerezin geçerli olduğu alan adı. -
secure
: Bu çerez yalnızca HTTPS üzerinden gönderileceksetrue
olarak ayarlanır. -
httponly
: Bu parametretrue
ise, çerez JavaScript ile erişilemez, yalnızca HTTP isteklerinde kullanılır.
Örnek:
// 1 saat boyunca geçerli olacak bir çerez oluşturma
setcookie("kullanici_adi", "ahmet", time() + 3600, "/");
Bu kod, "kullanici_adi" adında bir çerez oluşturur ve bu çerez 1 saat sonra sona erer.
2. Cookie'yi Okuma
Çerezler, PHP'de süper global $_COOKIE
dizisiyle okunur. Örneğin:
if(isset($_COOKIE["kullanici_adi"])) {
echo "Kullanıcı adı: " . $_COOKIE["kullanici_adi"];
} else {
echo "Çerez mevcut değil.";
}
Bu kod, "kullanici_adi" çerezi varsa onu ekrana yazdırır.
3. Cookie Silme
Çerezi silmek için aynı setcookie()
fonksiyonu, çerezin geçerlilik süresi geçmiş bir zaman olarak ayarlanır. Örneğin:
// Çerezi silmek için geçerlilik süresini geçmiş bir zamana ayarlayın
setcookie("kullanici_adi", "", time() - 3600, "/");
Bu, "kullanici_adi" çerezini tarayıcıdan siler.
4. PHP 8'de Yeni Özellikler
PHP 8'de çerezlerle ilgili daha güvenli ve esnek bir yol sunan yeni setcookie()
fonksiyonunun alternatifi olarak setcookie()
ve setrawcookie()
fonksiyonlarına ek olarak, array
yapısıyla kullanılabilen bir yapı getirilmiştir:
setcookie(
"kullanici_adi",
"ahmet",
[
'expires' => time() + 3600,
'path' => '/',
'domain' => 'ornek.com',
'secure' => true,
'httponly' => true,
'samesite' => 'Strict'
]
);
Bu, daha yapılandırılmış ve okunabilir bir yol sunar. "samesite"
parametresi, çerezin üçüncü taraf sitelere gönderilmesini kısıtlar ve güvenliği artırır. "Strict"
, çerezin yalnızca aynı site isteklerinde gönderileceği anlamına gelir.
Çerezler, oturum yönetimi, kullanıcı tercihlerinin kaydedilmesi gibi birçok durumda kullanışlıdır ve PHP ile oldukça kolay bir şekilde yönetilebilir.