CodeBlanks Logo Icon CodeBlanks

Özet - Oturumlar

PHP kursu · Orta seviye · Ders 87/115

session_start, $_SESSION ve destroy'la basit bir giriş sistemi yazarsın.

Özet - Oturumlar

Bu grupta oturumların beş taşını öğrendin: session_start() ile başlatma, $_SESSION ile yazma, isset() ile okuma, unset() ile tek değişken silme ve session_destroy() ile tüm oturumu kapatma.

Bunları birleştirerek bir giriş/çıkış sistemi kurabilirsin: giriş başarılıysa oturuma kimlik yazarsın, korumalı sayfalarda kontrol eder, çıkışta temizlersin.

Son adımda bu akışın tamamını bir araya getiren bir mini uygulama var.

Giriş sistemini birleştir

Bir giriş sistemi üç parçadan oluşur: giriş (kimlik doğrula, oturuma yaz), kontrol (isset ile bak) ve çıkış (unset + destroy).

Girişte kullanıcı adı ve parola doğruysa $_SESSION['user'] yazılır. Korumalı her sayfa if (!isset($_SESSION['user'])) ile başlar; tanımsızsa giriş sayfasına döner.

Çıkış sayfası unset($_SESSION['user']) ve session_destroy() çağırır, sonra giriş sayfasına yönlendirir.

Uygulama Özet - Mini giriş ve çıkış

session_start() çağır. $_SESSION['user']'a 'Ayşe', $_SESSION['role']'e 'admin' yaz. echo ile Merhaba ve kullanıcı adını yazdır. Sonra unset($_SESSION['user']) çağır. if/else ile isset($_SESSION['user']) kontrol et: tanımlıysa var, değilse yok yazdır.

Örnek çözümü göster
session_start çağır, user ve role ata, echo Merhaba, unset($_SESSION['user']), if(isset(...)) ile var/yok yazdır.
Örnek çözüm:
<?php
// Oturum aç, karşıla, sonra oturum değişkenini sil
session_start();
$_SESSION['user'] = 'Ayşe';
$_SESSION['role'] = 'admin';
echo "Merhaba " . $_SESSION['user'] . "\n";
unset($_SESSION['user']);
if (isset($_SESSION['user'])) {
    echo "var\n";
} else {
    echo "yok\n";
}

Kendini test et

  1. Oturum sisteminin beş taşını eşleştir

    session_start()
    Oturumu başlatır
    $_SESSION
    Veriyi saklar
    isset()
    Anahtarı kontrol eder
    unset()
    Tek anahtarı siler
    session_destroy()
    Tüm oturumu yok eder
  2. Doğru çıkış sırası nedir?

    • unset($_SESSION['user']) sonra session_destroy()
    • session_destroy() sonra unset()
    • Sadece session_destroy()
    • Sadece unset($_SESSION)
    Cevabı göster

    unset($_SESSION['user']) sonra session_destroy() — Doğru. Önce kullanıcı değişkeni unset edilir, sonra oturum tamamen yok edilir.

  3. Çıkışta kullanıcıyı sil

    <?php
    session_start();
    $_SESSION['user'] = 'Ayşe';
    echo 'Merhaba ' . $_SESSION['user'];
    ____
    $_SESSION['log'] = ['action' => 'logout'];
    var_dump(isset($_SESSION['user']));
    
    Cevabı göster
    <?php
    session_start();
    $_SESSION['user'] = 'Ayşe';
    echo 'Merhaba ' . $_SESSION['user'];
    unset($_SESSION['user']);
    $_SESSION['log'] = ['action' => 'logout'];
    var_dump(isset($_SESSION['user']));
    

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