PHP web dilinde Session(Oturum) Kontrolü

Kullandığınız birçok uygulamada session mantığını görebilirsiniz. Facebook, Gmail, Hotmail ve Yahoo başta olmak üzere, gezdiğiniz her e-ticaret sitesinde session kullanıldığını söyleyebiliriz. Ağırlıklı olarak PHP'de anlatımlarımızı yapsak da, session aslında tüm web dillerinde var. Phyton, ASP.net, Perl gibi dillerde yazım şekillerinde farklılıklar olsa aslında aynı mantıkla kullanabilirsiniz. 




Session(Oturum) ne demektir?

Session, Türkçesiyle "oturum nesnesi"; kullanıcının şifresi ve kullanıcı adı ile giriş yaptığı sistemlerde, kullanıcı bilgisinin SESSION nesneleri aracılığıyla sayfalar arasında taşınmasıdır. Session nesneleri tarayıcı kapatıldığında otomatik olarak sonlanırlar. Tarayıcı kapatılmazsa varsayılan süre 20 dakikadır. Bu süre kullanıcı tarafından ayarlanabilir, session_timeout parametresine atanan değer süresince session çalışmaya devam eder.



Örneğin bir bankanın internet sitesine Müşteri Numaranız, parolanız ve telefonunuza gelen SMS ile giriş yaptığınızda, banka veritabanından bilgilerinize ulaşılır ve diğer sayfalarda bu bilgiler kullanılır, siz sayfalar arasında dolaşırken size tekrar tekrar giriş bilgileri sorulmaz. Banka sunucusu, sisteme giriş yapan her müşteri için eşsiz bir session_id üretir ve sizi diğer müşterilerden bu session_id sayesinde ayırır.

PHP'de session başlatmak için sayfanın en başına aşağıdaki kodu yazıyoruz.

session_start();

Daha sonra, oturum değişkenleri oluşturmak için $_SESSION['degisken_adi'] şeklinde değilkenlere ulaşıyoruz. Örneğin giriş yapılan sayfada kullanıcı adı ve şifre veritabanında bulunduktan  sonra, istenilen bilgiler session değişkenlere aşağıdaki şekilde aktarılır.

$_SESSION['adisoyadi'] = "Oğuzhan TAŞ"
$_SESSION['dogumyeri']="Elazığ"
$_SESSION["egitim"] =  "Yüksek Lisans" 


Başka bir web sayfasında bu değişkenleri ekrana yazdırmak ya da ulaşmak isterseniz;

echo $_SESSION['adisoyadi]  yazarak ulaşabilirsiniz. Bu ifadeyi tabi ki başka değişkenlere de atayabilirsiniz. $adi = $_SESSION['adisoyadi] gibi

Oturum Nasıl Kapatılır?

Yukarıda belirttiğimiz gibi varsayılan oturum süresi 20 dakikadır. Kullanıcı 20 dakika boyunca hiçbir işlem yapmazsa otomatik olarak SESSION değişkenlerinin içeriği boşaltılır. Örneğin, kullanıcı giriş yaptı ve öğle yemeğine gitti, yarım saat sonra tekrar bilgisayar başına döndüğünde ve session ile girilmesi gereken herhangibir sayfaya girmek istediğinde başarılı olamayacaktır. Sistem direkt olarak giriş sayfasına yönlendirecektir. Aşağıdaki if şartıyla durumu anlatabiliriz, session ile girilmesi gereken her web sayfasının başında aşağıdaki kontrolü yapmalıyız.

if ($_SESSION["adisoyadi"]=="")
{
   //Oturum değişkeninin içeriği boş, direkt anasayfaya yönlendirme kodları
  // bu kısma gelecek.
}


Oturumu kullanıcı sonlandırmak isterse, yani menülerden "Sistemden Çıkış" ya da "Oturumu Kapat" gibi bir seçeneği seçtiğinde, SESSION değişkenlerinin içeriğini biz boşaltmalıyız. Aşağıda bu işlemi yapmak için gerekli kodlar, 2 satırda işlemi tamamlıyoruz.


session_unset();  // tüm session değişkenlerini hafızdan kaldırır.
session_destroy(); // sessionu tamamen bitirir.


Şimdilik anlatımlar bu kadar, gerekli olan komutları ve kullanımlarını öğrendik, gelecek yazımızda detaylı bir örnek ile anlatacağız.

İyi çalışmalar dilerim.
Oğuzhan TAŞ
Ocak 2015

KAYNAKLAR

PHP Session Kavramı
http://www.w3schools.com/php/php_sessions.asp

PHP Session Kütüphanesi 
http://php.net/manual/tr/book.session.php





 






Bookmark and Share