Çerez silme
Süre sonu geçmiş bir çerez ayarlayarak çerezi silmeyi öğrenirsin.
Geçmiş süre ile silme
Çerezi silmenin yolu unset() değildir; $_COOKIE yalnızca bu istekteki kopyayı tutar. Asıl silme, tarayıcının çerezi kaldırmasıyla olur.
Bunun için aynı isimle, boş değerle ve geçmiş bir süre sonu ile yeniden setcookie() çağırırsın: setcookie('user', '', time() - 3600).
Tarayıcı geçmiş tarihi görür ve çerezi hemen kaldırır. Bir sonraki istekte $_COOKIE['user'] artık gelmez.
Bu istekte $_COOKIE'ten de kaldır
setcookie() çerezi siler ama bu değişiklik tarayıcıdaki sonraki istekte etkili olur. Bu istekte $_COOKIE['user'] hâlâ eski değeri taşır.
Bu yüzden silme akışı iki adımlıdır: önce setcookie('user', '', time() - 3600) ile tarayıcıya sil mesajı gönder, sonra unset($_COOKIE['user']) ile bu istekteki kopyayı da temizle.
Böylece aynı sayfa yükünde de çerez yokmuş gibi davranırsın.
Uygulama 'user' çerezini sil
setcookie() çağır: ad 'user', değer boş dizgi '', süre sonu time() - 3600. Sonra unset($_COOKIE['user']) çağır. En son echo ile gone yazdır.
Örnek çözümü göster
setcookie('user', '', time() - 3600) çağır, unset($_COOKIE['user']) ile temizle, echo "gone" yaz.
Örnek çözüm:
<?php
// 'user' çerezini geçmiş süre ile sil ve $_COOKIE'ten kaldır
setcookie('user', '', time() - 3600);
unset($_COOKIE['user']);
echo "gone\n";
Kendini test et
-
Hangi expires çerezi siler?
- time() + 3600
- time() - 3600
- 0
- null
Cevabı göster
time() - 3600 — Doğru. Geçmiş bir süre sonu (time() - 3600) tarayıcıya çerezi silmesini söyler.
-
Çerezi geçmiş süre ile sil
<?php $cfg = ['name' => 'user']; setcookie($cfg['name'], '', ____); echo 'deleted';Cevabı göster
<?php $cfg = ['name' => 'user']; setcookie($cfg['name'], '', time() - 3600); echo 'deleted'; -
Silme adımlarını eşleştir
- setcookie(name, '', time()-3600)
- Tarayıcıdan siler
- unset($_COOKIE['name'])
- Bu istekte temizler
- time() + 3600
- Süreyi uzatır
- setcookie(name, 'value')
- Yeni çerez oluşturur