PHP SESSION (OTURUM) NEDİR? NASIL KULLANILIR?
Web uygulamaları doğası gereği stateless (durumsuz) çalışır. Yani her HTTP isteği birbirinden bağımsızdır. Ancak çoğu zaman bir kullanıcının web sitesinde gezinirken oturumunu (session) takip etmek gerekir. Örneğin:
-
Kullanıcının giriş yapmış mı olduğunu kontrol etmek
-
Sepet bilgilerini saklamak
-
Form adımlarını hatırlamak
PHP, bu ihtiyacı karşılamak için $_SESSION süper global değişkenini sunar.
SESSION NASIL ÇALIŞIR?
PHP oturumları, sunucu tarafında veri saklamak için kullanılır. Her kullanıcıya özel bir oturum ID'si (genellikle bir çerez ile) verilir ve bu ID sayesinde sunucuda saklanan veriye erişilir.
Oturum verisi, genellikle sunucuda tmp klasöründe dosya olarak saklanır.
SESSION BAŞLATMAK
Her oturum kullanımı öncesinde session_start() fonksiyonu çağrılmalıdır. Bu, PHP'ye oturumu başlatmasını ya da mevcut oturumu devam ettirmesini söyler.
<?php
session_start(); // Oturum başlatılır
?>
Not: session_start() fonksiyonu, sayfanın en üstünde ve herhangi bir çıktıdan önce kullanılmalıdır.
SESSION DEĞİŞKENİ OLUŞTURMAK
Sessıon başlatıldıktan sonra, istenildiği kadar session değişkeni tanımlanabilir. Tanımlanan bu değişkenlere, session başlatılmış tüm sayfalardan erişilebilir.
<?php
session_start();
$_SESSION['kullanici_adi'] = 'ahmet';
$_SESSION['giris_zamani'] = time();
?>
Yukarıdaki $_SESSION['kullanici_adi'] ve $_SESSION['giris_zamani'] değişkenleri artık diğer sayfalardanda erişilebilir.
SESSION VERİSİNE ERİŞMEK
Sessıon değişkenlerine, tanımlandıktan sonra, session başlatılan sayfada tanımladığı şekli ile erişilebilir.
<?php
session_start();
echo $_SESSION['kullanici_adi']; // ahmet
?>
SESSION DEĞİŞKENİNİ SİLMEK
Oluşturulan bir session değişkeni "unset" fonksiyonu ile silinebilir.
<?php
session_start();
unset($_SESSION['kullanici_adi']);
?>
TÜM SESSION VERİLERİNİ TEMİZLEMEK
<?php
session_start();
session_unset(); // Tüm oturum verilerini siler
?>
OTURUM KAPATMA (SESSION SONLANDIRMA)
Oturumun sonalndırılması istenilen duurmlarda, session_destroy fonksiyonu kullanılır. Bu durumda kullancıı için oluşturulan SESSION nesnesi silinecektir. ANcak bunun yanında , oluşturulan SESSION değişkenlerinide unset etmek, olası oturum problemlerini engelleyecektir.
<?php
session_start();
session_unset(); // Tüm oturum değişkenlerini sil
session_destroy(); // Oturumu tamamen yok et
?>