PHP Session (Oturum Yönetimi)

Kelime anlamı oturum'u karşılamaktadır. Aslında tarayıcımızı açarak bir web sunucusuna bağlanmak istediğimizde, açtığımız sayfa için bize bir oturum id si verilir. Bunun nedeni sunucu ile aramızda sürekli bir TCP/IP protokolü bulunmaz bu kaynak yönetimi açısından avantajdır fakat istemciler(kullanıcılar) herhangi bir sitede hangi aşamada kaldığını bilmek isteyecekleri için oturum yönetim(session menagemet) sistemi geliştirilmistir ve her explorer sayfası açıldığında istemciye bir oturum id si verilmiştir. Diyelimki tarayıcı programımızı açtık ve bir web sunucusuna bağlanmak istedik,sitenin ana sayfasına bağlandık ve herhangi bir linke yeni bir pencerede aç komutu verdik açılan pencereninde oturum id si ilk açtığımız pencere ile aynıdır. Çünkü aynı sayfa üzerinden işlem yapıyoruz.

Session Nerede Kulanılır

Her kullanıcınıza yada siteye giren her kişiye özel bir alan,kişiselleştirilmiş bir site sunmakta kullanılır. En çok kullanıldığı yerler ise kullanıcı,üye tanımlama modülleri,alışveriş sepetleridir. Örnek vermek gerekirse bir e-ticaret sitesine girdiğimizde otomatik olarak bir oturum id si alacağız ve php ile bu idye erişilerek tüm yaptığınız alışverişler bu id ile tanımlanacaktır. Yani diyelimki 2 ürünü sepete attık. İki ürününde istek idsi sizin oturum id nizdir.

Session Oluşturma

Sessionları tek bir $_SESSION global dizisi üzerinden okuyup, oluşturup, silebiliyoruz. Tek önemli mevzu session kullanımına ya da oluşturulmasına başlamadan önce bir kere her sayfanın en başında session_start() fonksiyonunu yazmalıyız, bu fonksiyon session olayını kullanıma hazırlar ve olmazsa olmazdır.

Bazı sunucularda session kullanımı otomatik olarak hep açıktır, açık olan sunucularda session_start() yazmaya çalışırsanız hata verir. Bu durumda bu fonksiyonu kullanmaya gerek yoktur.

session_start();
$_SESSION['mesaj'] = 'Merhaba Uzay!';

Yukarıda ilk önce session kullanımını başlattık ve ardından aynı bir dizi tanımlarmış gibi $_SESSION global dizisine mesaj anahtarına Merhaba Uzay! değerini verdik. Yani mesaj adında bir session oluşturduk ve değerini Merhaba Uzay! yaptık.

Bu oluşturduğumuz değer giren kişinin tarayıcısı kapatılmadığı sürece gezdiği her sayfaya tekrar geri gönderilecek ve bir önceki sayfada yaptığı işlemleri, kullanıcı adı ya da şifre gibi verileri bu şekilde yeniden hatırlanmasını sağlayacak.

Mesela session ile bir sayfada giren kişinin adını belirtmesini isteyip tüm sayfalarda onun bu adını hatırlatabilirim. Yani üye girişi yaptığınız yerlerde Merhaba, kulanıcıadınız veya Merhaba, isminiz şeklinde.

Session Dizi Atama

Sessionlara yazı, sayı gibi değerler atadığımız gibi aynı zamanda dizi (array) da atayabiliriz. Bunu yapmak için sıradan bir dizi tanımlıyormuş gibi davranman yeterli.

Session dizi örneği:

session_start();
$_SESSION['uyeler'] = array('Aygün', 'Ahmet', 'Görkem');

Bu şekilde sessionların içerisinde dizi verileride taşıyabiliriz. Ve başka sayfalarda çağırdığımızda aynen dizi şeklinde kullanmaya devam edebiliriz.

Session Silme

Daha öncelerde de bahsettiğimiz gibi yine burada da session silme işleminde de unset()fonksiyonunu kullanıyoruz.

session_start();
$_SESSION['evren'] = 'uzay';
unset($_SESSION['evren']);

Yukarıda önce bir session oluşturduk ve hemen unset fonksiyonu ile onu sildik.

Tüm Sessionları Silmek

Bu işlem için de session_destroy() fonksiyonunu kullanacağız. Bu fonksiyon tanımlanmış tüm sessionları yok eder.

session_start();
session_destroy();

Session Kontrolü

Yine diğer çalışmalarda varlığını kontrol etmekte kullandığımız isset() fonksiyonunu kullanacağız. Bu fonksiyon eğer içine yazdığımız session varsa olumlu yoksa olumsuz döner.

session_start();
echo isset($_SESSION['deneme']);

Session Kullanım Örneği

Öncelikle bir.php adında bir php dosyası oluşturalım ve içinde bir session oluşturup bir başka php sayfasında o veriyi okutmayı deneyelim.

bir.php

session_start();
$_SESSION['isim'] = 'Aygün';
  
echo 'Sessionumuzu oluşturduk.';

Bu sayfayı oluşturup çalıştırdıktan sonra 2. php sayfamızıda yapalım. Bunun adıda iki.php olsun.

iki.php

session_start();
 
echo 'Oluşturulan isim: ' . $_SESSION['isim'];

bir.php yi ziyaret ettikten sonra bu sayfaya geldiğimizde ekranda Oluşturulan İsim: Aygün yazacaktır. Eğer bir.php ye uğramadan yani sessionumuzu oluşturmadan iki.php ye girmeye çalışırsak böyle bir session oluşturulmadığı için kod hata verecektir.

Session temel kullanımı bu şekildedir, ilerleyen derslerimizde, session kullanıcı girişlerinde kullanarak anlatacağım.

Bir sonraki dersimizde Veri Türleri konusunu işleyeceğiz.

Yorumlar
Yorum Yaz
Cevap Yaz