CodeBlanks Logo Icon CodeBlanks

Çerez süre sonu

PHP kursu · Orta seviye · Ders 90/115

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

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

  3. Süre ifadelerini eşleştir

    time() + 3600
    1 saat
    time() + 86400
    1 gün
    time() + 604800
    1 hafta
    time() + 31536000
    1 yıl

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