CodeBlanks Logo Icon CodeBlanks

$_COOKIE ile çerez okuma

PHP kursu · Orta seviye · Ders 89/115

$_COOKIE süper globaliyle tarayıcıdan gönderilen çerezleri okumayı öğrenirsin.

$_COOKIE süper globali

Bir çerez setcookie() ile oluşturulduktan sonra tarayıcı onu saklar. Sonraki istekte tarayıcı çerezi geri gönderir; PHP bu veriyi $_COOKIE süper globaline doldurur.

Her çerez adı bir anahtar olur: $_COOKIE['dil'] gibi. Dizi olarak da gezebilirsin.

Önemli: setcookie() çağrıldığı istekte çerez $_COOKIE'te yoktur; tarayıcının çerezi geri göndermesini beklersin.

isset ile çerez kontrolü

Çerez tanımsız olabilir: tarayıcı henüz göndermemiş ya da silmiş olabilir. Doğrudan $_COOKIE['theme'] okumak PHP 8'de uyarı verir.

Önce isset($_COOKIE['theme']) ile anahtarın varlığını kontrol et. True dönerse güvenle okursun; false ise varsayılan bir değer kullanırsın.

İpucu: $_COOKIE['theme'] ?? 'light' ile tek satırda hem kontrol hem varsayılan sağlarsın.

Uygulama Tanımsız çerezden varsayılan tema oku

if/else ile isset($_COOKIE['theme']) kontrol et: tanımlıysa $theme'e $_COOKIE['theme']'i, değilse 'light' ata. Sonra echo $theme yazdır.

Örnek çözümü göster
if(isset($_COOKIE['theme'])) ile $theme'i çerezden, else'de 'light' ata, echo $theme yaz.
Örnek çözüm:
<?php
// $_COOKIE['theme'] yoksa varsayılan ile yazdır
if (isset($_COOKIE['theme'])) {
    $theme = $_COOKIE['theme'];
} else {
    $theme = 'light';
}
echo $theme . "\n";

Kendini test et

  1. Bir çerez ne zaman $_COOKIE'te görünür?

    • setcookie çağrıldığı anda aynı istekte
    • Yalnızca session_start çağrıldığında
    • Sonraki istekte, tarayıcı çerezi geri gönderdiğinde
    • Çerez silindikten sonra
    Cevabı göster

    Sonraki istekte, tarayıcı çerezi geri gönderdiğinde — Doğru. Çerez ancak tarayıcının geri gönderdiği bir sonraki istekte $_COOKIE'te görünür.

  2. Çerez değerini oku

    <?php
    $cfg = ['default' => 'light'];
    ____
    echo $theme;
    
    Cevabı göster
    <?php
    $cfg = ['default' => 'light'];
    $theme = $_COOKIE['theme'];
    echo $theme;
    
  3. Çerez okuma araçlarını eşleştir

    $_COOKIE['k']
    Çerez değerini okur
    isset()
    Anahtarı kontrol eder
    ?? 'varsayılan'
    Tanımsızsa varsayılan verir
    empty()
    Boş mu diye bakar

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