CodeBlanks Logo Icon CodeBlanks

Session vs cookie

PHP kursu · Orta seviye · Ders 92/115

Oturum ve çerez arasındaki farkı ve ne zaman hangisini kullanacağını öğrenirsin.

Oturum mu çerez mi?

Oturum (session) verisi sunucuda saklanır; $_SESSION içine yazarsın. Kullanıcı yalnızca bir kimlik çerezi taşır; asıl veri sunucudadır.

Çerez (cookie) ise tarayıcıda saklanır. Tarayıcı her istekte çerezi geri gönderir; sunucu okur.

Oturum daha güvenlidir (kullanıcı veriyi görmez) ve büyük veri için uygundur. Çerez tercih (tema, dil) gibi küçük, kritik olmayan veri içindir.

Hangisini ne zaman kullanmalısın?

Oturum: giriş yapmış kullanıcı kimliği, sepet tutarı, yetki düzeyi gibi hassas veya büyük veriler için. Sunucuda tutulur; kullanıcı değiştiremez.

Çerez: tema (koyu/açık), dil tercihleri, 'beni hatırla' bayrağı gibi kritik olmayan küçük veriler için. Tarayıcıda kalır; süre sonu verilebilir.

İkisi birlikte de kullanılabilir: oturum kimliği bir çerezle taşınır. Hassas veriyi çerezde saklama.

Uygulama Oturum ve çerezi birlikte kullan

session_start() çağır. $_SESSION['user_id'] = 42 ata. Ayrıca setcookie('last_visit', 'today', time() + 86400) ile bir günlük çerez ayarla. Sonra echo ile stored yazdır.

Örnek çözümü göster
session_start çağır, $_SESSION['user_id']=42 ata, setcookie('last_visit', 'today', time() + 86400) ile çerez ayarla, echo "stored" yaz.
Örnek çözüm:
<?php
// Oturum aç, çerez ayarla ve 'stored' yazdır
session_start();
$_SESSION['user_id'] = 42;
setcookie('last_visit', 'today', time() + 86400);
echo "stored\n";

Kendini test et

  1. Hangisi sunucu tarafında saklanır?

    • $_COOKIE
    • Set-Cookie başlığı
    • Tarayıcı belleği
    • $_SESSION
    Cevabı göster

    $_SESSION — Doğru. $_SESSION verisi sunucuda tutulur; tarayıcı yalnızca kimlik çerezi taşır.

  2. Hassas kimlik için doğru depoyu seç

    <?php
    // Hassas kimlik için doğru depolama
    $choice = ['sensitive' => '____'];
    echo $choice['sensitive'];
    
    Cevabı göster
    <?php
    // Hassas kimlik için doğru depolama
    $choice = ['sensitive' => 'session'];
    echo $choice['sensitive'];
    
  3. Oturum ve çerez farklarını eşleştir

    $_SESSION
    Sunucu tarafında
    $_COOKIE
    Tarayıcıda
    ~4 KB sınır
    Çerezler için
    Oturum kapanınca biter
    Oturumlar için

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