Çerez süre sonu
setcookie()'ye süre sonu (expires) verip çerezin ömrünü ayarlamayı öğrenirsin.
Süre sonu ve time()
Varsayılan olarak çerez tarayıcı kapanana kadar yaşar. Süre sonu (expires) verirsen çerez daha uzun yaşar. setcookie()'nin üçüncü argümanı Unix zaman damgasıdır.
time() o anın saniye cinsinden zaman damgasını verir (1 Ocak 1970'den bu yana). Üzerine saniye ekleyerek ileri bir tarih hesaplarsın: time() + 3600 bir saat sonrasıdır.
Örnek: setcookie('dil', 'tr', time() + 86400) çerezi 24 saat yaşatır.
Kalıcı çerezler
Üçüncü argümanı verdiğiniz çerez kalıcı olur: tarayıcı kapatılsa bile süre sonuna kadar diskte yaşar. Bu, kullanıcı tercihleri (dil, tema) için idealdir.
Süre sonu verilmezse çerez oturum çerezi olur: tarayıcı penceresi kapanınca silinir. Bu, geçici durumlar için uygundur.
Süre sonu geçmiş bir tarih verilirse tarayıcı çerezi hemen siler; bunu silme için kullanırız.
Uygulama Bir haftalık çerez oluştur
setcookie() çağır: ad 'prefs', değer 'dark', süre sonu time() + 604800 (bir hafta). Sonra echo ile set yazdır.
Örnek çözümü göster
setcookie('prefs', 'dark', time() + 604800) çağır, sonra echo "set" yaz.
Örnek çözüm:
<?php
// 'prefs' çerezini 1 haftalık süre sonu ile oluştur
setcookie('prefs', 'dark', time() + 604800);
echo "set\n";
Kendini test et
-
Bir saatlik süre sonu ekle
<?php $cfg = ['name' => 'token', 'value' => 'abc']; setcookie($cfg['name'], $cfg['value'], ____); echo 'set';Cevabı göster
<?php $cfg = ['name' => 'token', 'value' => 'abc']; setcookie($cfg['name'], $cfg['value'], time() + 3600); echo 'set'; -
time() ne döndürür?
- 1 Ocak 1970'den bu yana geçen saniye sayısı
- Geçerli tarih YYYY-AA-GG biçiminde
- Çerezin bitiş süresi
- Mikrosaniye cinsinden süre
Cevabı göster
1 Ocak 1970'den bu yana geçen saniye sayısı — Doğru. time() Unix zaman damgasını saniye cinsinden verir.
-
Süre ifadelerini eşleştir
- time() + 3600
- 1 saat
- time() + 86400
- 1 gün
- time() + 604800
- 1 hafta
- time() + 31536000
- 1 yıl