CodeBlanks Logo Icon CodeBlanks

session_start() ile oturum başlatma

PHP kursu · Orta seviye · Ders 82/115

session_start() ile oturum başlatmayı ve oturum çerezini öğrenirsin.

session_start() ne yapar?

HTTP durumsuzdur (stateless): her istek bir öncekinden bağımsızdır. PHP, session_start() ile bu durumu aşar.

Çağırdığında PHP tarayıcıya bir oturum çerezi (session cookie) gönderir ve sunucuda her kullanıcı için ayrı bir veri alanı açar. Bu alan $_SESSION süper globalinde tutulur.

Çerez, benzersiz bir oturum kimliği (session id) taşır; PHP bu kimlikle doğru veriyi bulur. Çıktıdan önce, sayfanın başında bir kez çağır.

Oturum kimliği ve çerez

Her oturumun benzersiz bir kimliği vardır: session id. PHP bunu session_id() ile okur veya ayarlar. İlk session_start() çağrısında kimlik otomatik üretilir.

Tarayıcı bu kimliği PHPSESSID adlı çerezde saklar (varsayılan). Sonraki isteklerde tarayıcı çerezi geri gönderir; PHP kimliği okur ve ilgili $_SESSION verisini yükler.

Çerez adını php.ini'de session.name ile değiştirebilirsin. Çerez süresi dolana kadar oturum yaşar.

Uygulama session_start ile oturum durumunu yazdır

session_start() çağrısını yaz. Ardından if ile session_status() PHP_SESSION_ACTIVE'e eşitse active yazdır.

Örnek çözümü göster
session_start çağır, if ile session_status() === PHP_SESSION_ACTIVE kontrol et, echo "active" yaz.
Örnek çözüm:
<?php
// session_start çağır ve oturumun aktif olduğunu yazdır
session_start();
if (session_status() === PHP_SESSION_ACTIVE) {
    echo "active\n";
}

Kendini test et

  1. session_start() ne zaman çağrılmalı?

    • Sayfanın en sonunda, tüm çıktıdan sonra
    • Çıktıdan önce, sayfanın başında
    • Yalnızca veritabanı bağlantısından sonra
    • Echo ile aynı satırda
    Cevabı göster

    Çıktıdan önce, sayfanın başında — Doğru. session_start() çıktıdan önce çağrılır, yoksa 'headers already sent' hatası alırsın.

  2. Oturumu başlat

    <?php
    ____
    $_SESSION = ['counter' => 1];
    echo $_SESSION['counter'];
    
    Cevabı göster
    <?php
    session_start();
    $_SESSION = ['counter' => 1];
    echo $_SESSION['counter'];
    
  3. Oturum kavramlarını eşleştir

    session_start()
    Oturumu başlatır
    $_SESSION
    Oturum verisini tutar
    session_id()
    Oturum kimliğini verir
    session_destroy()
    Oturumu yok eder

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