CodeBlanks Logo Icon CodeBlanks

unset() ve session_destroy()

PHP kursu · Orta seviye · Ders 85/115

unset() ile tek bir oturum değişkenini ve session_destroy() ile tüm oturumu silmeyi öğrenirsin.

unset() tek değişkeni siler

Bir oturum değişkenini silmek için unset($_SESSION['anahtar']) kullanırsın. Bu yalnızca o anahtarı kaldırır; oturumun geri kalanı korunur.

Örneğin alışveriş sepetindeki tek bir ürünü silmek istersen unset($_SESSION['cart'][$productId]) yazarsın. Sepetin tamamı kalır.

Dikkat: unset($_SESSION) tüm süper globali yok eder ama oturumu kapatmaz. Oturumu kapatmak için session_destroy() gerekir.

session_destroy() tüm oturumu kapatır

session_destroy() sunucudaki oturum verisini tamamen yok eder. Oturum dosyası silinir; bir sonraki session_start() yeni bir oturum başlatır.

Çıkış (logout) akışında önce unset($_SESSION['user']) ile kullanıcı değişkenini siler, sonra session_destroy() ile oturumu kapatırsın.

Çerez tarayıcıda kalabilir; istersen session_destroy() sonrası çerezi de silmek gerekir. Ama temel akış için destroy yeterlidir.

Uygulama Sepet anahtarını sil ve kontrol et

session_start() çağır. $_SESSION['cart'] = 3 ata. Ardından unset($_SESSION['cart']) ile sil. if/else ile isset($_SESSION['cart']) kontrol et: tanımlıysa var, değilse yok yazdır.

Örnek çözümü göster
session_start çağır, $_SESSION['cart']=3 ata, unset($_SESSION['cart']) çağır, if(isset(...)) ile var/yok yazdır.
Örnek çözüm:
<?php
// $_SESSION['cart'] değerini unset ile sil ve isset ile kontrol et
session_start();
$_SESSION['cart'] = 3;
unset($_SESSION['cart']);
if (isset($_SESSION['cart'])) {
    echo "var\n";
} else {
    echo "yok\n";
}

Kendini test et

  1. session_destroy() ne yapar?

    • Tek bir değişkeni siler
    • $_SESSION'u boşaltır ama oturumu açık tutar
    • Sadece çerezi siler
    • Sunucudaki oturum verisini tamamen yok eder
    Cevabı göster

    Sunucudaki oturum verisini tamamen yok eder — Doğru. session_destroy() sunucudaki oturum verisini yok eder.

  2. Tek anahtarı sil

    <?php
    session_start();
    $_SESSION['cart'] = ['id' => 7, 'qty' => 3];
    ____
    var_dump(isset($_SESSION['cart']));
    
    Cevabı göster
    <?php
    session_start();
    $_SESSION['cart'] = ['id' => 7, 'qty' => 3];
    unset($_SESSION['cart']);
    var_dump(isset($_SESSION['cart']));
    
  3. Temizlik araçlarını eşleştir

    unset($_SESSION['k'])
    Tek anahtarı siler
    session_destroy()
    Tüm oturumu yok eder
    session_unset()
    Tüm anahtarları siler
    session_id()
    Kimliği okur

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