CodeBlanks Logo Icon CodeBlanks

Özet - Çerezler

PHP kursu · Orta seviye · Ders 93/115

setcookie, $_COOKIE ve süre sonuyla tema tercih (koyu/açık) uygulaması yazarsın.

Özet - Çerezler

Bu grupta çerezlerin dört taşını öğrendin: setcookie() ile oluşturma, $_COOKIE ile okuma, time() + N ile süre sonu verme ve geçmiş tarih ile silme.

Bunları birleştirerek basit bir tercih sistemi kurabilirsin: kullanıcı tema seçer, çerez olarak yazarsın, sonraki ziyaretlerde $_COOKIE'ten okursun.

Son adımda koyu/açık tema tercihini hatırlayan bir mini uygulama var.

Tema tercih uygulaması

Bir tema tercihi uygulaması iki adımdan oluşur: yazma ve okuma.

Yazma: kullanıcı temayı seçtiğinde setcookie('theme', 'dark', time() + 604800) ile bir haftalık çerez ayarlarsın.

Okuma: her sayfa yükünde isset($_COOKIE['theme']) ile kontrol et; tanımlıysa çerezdeki değeri, değilse 'light' varsayılanını kullan. Böylece site bir hafta boyunca tercihi hatırlar.

Uygulama Özet - Tema tercihini uygula

setcookie('theme', 'dark', time() + 604800) ile bir haftalık tema çerezi ayarla. Sonra if/else ile isset($_COOKIE['theme']) kontrol et: tanımlıysa $theme'e $_COOKIE['theme']'i, değilse 'light' ata. En son echo $theme yazdır.

Örnek çözümü göster
setcookie('theme', 'dark', time() + 604800) çağır, if(isset($_COOKIE['theme'])) ile $theme'i çerezden, else'de 'light' ata, echo $theme yaz.
Örnek çözüm:
<?php
// Tema çerezini ayarla ve $_COOKIE'ten güvenle oku
setcookie('theme', 'dark', time() + 604800);
if (isset($_COOKIE['theme'])) {
    $theme = $_COOKIE['theme'];
} else {
    $theme = 'light';
}
echo $theme . "\n";

Kendini test et

  1. Çerez araçlarını eşleştir

    setcookie()
    Çerez oluşturur
    $_COOKIE
    Çerezi okur
    time() + N
    Süre sonu verir
    unset($_COOKIE['k'])
    Bu istekte siler
  2. Çerez silme akışı nedir?

    • setcookie(name, '', time()-3600) ve unset($_COOKIE[name])
    • Sadece setcookie(name, 'value') ile yeniden yaz
    • Sadece unset($_COOKIE[name])
    • Sadece session_destroy()
    Cevabı göster

    setcookie(name, '', time()-3600) ve unset($_COOKIE[name]) — Doğru. Önce geçmiş tarihli setcookie tarayıcıdan siler, sonra unset bu isteği temizler.

  3. Tema çerezini yapılandırmadan ayarla

    <?php
    $cfg = ['name' => 'theme', 'value' => 'dark', 'ttl' => 604800];
    ____
    echo $cfg['value'];
    
    Cevabı göster
    <?php
    $cfg = ['name' => 'theme', 'value' => 'dark', 'ttl' => 604800];
    setcookie($cfg['name'], $cfg['value'], time() + $cfg['ttl']);
    echo $cfg['value'];
    

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