CodeBlanks Logo Icon CodeBlanks

Çerez silme

PHP kursu · Orta seviye · Ders 91/115

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

  1. 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.

  2. Ç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';
    
  3. 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

Orta seviye bölümündeki tüm dersler