PHP Session Kullanımı (Oturum Yönetimi)

Kullanım açısından cookieler ile aynı olan sessionlar $_SESSION global dizisi kullanılarak okunur.. Fakat yazılması için bir fonksiyona ihtiyaç duymaz. Ayrıca cookielerin ne zaman sona ereceğini biz belirtirken sessionlar tarayıcının kapanmasıyla silinir. Tarayıcı içerisinde ise sayfanın kapanmasıyla sessionlar silinir.

Session Kullanım Alanları

Sessionlar genellikle siteye giriş yapan kullanıcılar tarayıcıyı sonlandırana kadar onları giriş yapmış şekilde tutar. Ayrıca bazı yerlerde sepet uygulamaları için yine sessionlar kullanılır.

Session Oluşturma

Sessionlar tek bir $_SESSION dizisi kullanılarak oluşturulur veya silinebilir. Session dizisi kullanılmadan önce sayfanın başında session_start() fonksiyonu tanımlanmalıdır. Bu fonksiyon session dizisini kullanıma hazırlar.

Session fonksiyonu kullanılırken dikkat edilmesi gereken bir diğer nokta bazı sunucularda session fonksiyonunun zaten açık olmasıdır. Session fonksiyonunun açık olduğu sunucularda session_start() fonksiyonu tanımlarsak hata alırız. Bu tür sunucularda session_start() fonksiyonu kullanılmaz.

Aşağıda bir örnek tanımlayarak session kullanımını daha detaylı inceleyelm:

session_start();

$_SESSION[‘isim’]=’lifeacode’;

Yukarıda session global dizisini başlattık ve ardından session global dizisini tanımladık. İsim anahtarına lifeacode değerini atadık. Tanımladığımız bu dizi son kullanıcı tarayıcıyı kapatmadığı sürece gezindiği bütün sayfalara veri gönderecek ve bu şekilde verinin hafızada kalmasını sağlayacak.

Örnek verecek olursak kullanıcıdan bir mail adresi isteyerek tarayıcının bütün sayfalarda bu mail adresinini sessionlarla hatırlamasını sağlayabiliriz.

Session Dizi(Array) Oluşturma

Sessionlara int veya string değerler atayabildiğimiz gibi sessionları bir dizi olarak da tanımlayabiliriz. Aşağıda bir session dizisi oluşturalım.

session_start();

$_SESSION[‘diller’]=(‘php’,’html’,’python’);

Yukarıda diller isminde bir session dizisi oluşturduk. Bu diziyi diğer sayfalarda kullanabiliriz. Bunun için diziyi istediğimiz sayfada çağırmamız yeterli olacaktır.

Session Silme

Session silme işleminde unset() fonksiyonu kullanılır.

session_start();

$_SESSION[‘sehir’]=‘istanbul’;

unset($_SESSION[‘gezegen’]);

Yukarıda tanımlanmış bir session global dizisini unset() fonksiyonu ile sildik. Sessionların tamamını silmek için ise session_destroy fonksiyonu kullanılır.

session_start();

session_destroy();

Session Olup Olmadığını Kontrol Etmek

Session kontrolü yapmak için isset() fonksiyonu kullanılır.

session_start();

echo isset($_SESSION[‘sehir’]);

Yukarıda sehir isminde bir session olup olmadığını kontrol ettik. İsset() fonksiyonu belirtilen dizi varsa olumlu yoksa olumsuz döner.