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.
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.
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.
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.
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
?>
Oluşturulan bir session değişkeni "unset" fonksiyonu ile silinebilir.
<?php
session_start();
unset($_SESSION['kullanici_adi']);
?>
<?php
session_start();
session_unset(); // Tüm oturum verilerini siler
?>
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
?>
Toplam 33 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.