session_start() ile oturum başlatma
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
-
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.
-
Oturumu başlat
<?php ____ $_SESSION = ['counter' => 1]; echo $_SESSION['counter'];Cevabı göster
<?php session_start(); $_SESSION = ['counter' => 1]; echo $_SESSION['counter']; -
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