PHP’de Session Kullanımı ($_SESSION)

19 Mayıs 2015 - 39 Okunma
PHP’de Session Kullanımı ($_SESSION)
Php4 versiyonuyla birlikte kullanılmaya başlanan Session (Oturum) ziyaretçi bilgilerini sitenizin sayfaları arasında kullanabilmenizi, oturum ve kullanıcıya özel şifreli yada şifresiz sayfalar oluşturabilmenizi sağlamaktadır. Günümüzde yaygın olarak Kullanıcı Giriş-Çıkış işlemleri için kullanılan yöntemdir. SESSION Sistemi nasıl işler? Siteye giren her ziyaretçi için sistem bir Session ID (Oturum Numarası) belirler ve oturumu bu şekilde açar. Bu numaralar eşsizdir. Yani […]

Php4 versiyonuyla birlikte kullanılmaya başlanan Session (Oturum) ziyaretçi bilgilerini sitenizin sayfaları arasında kullanabilmenizi, oturum ve kullanıcıya özel şifreli yada şifresiz sayfalar oluşturabilmenizi sağlamaktadır.

Günümüzde yaygın olarak Kullanıcı Giriş-Çıkış işlemleri için kullanılan yöntemdir.

SESSION Sistemi nasıl işler?

Siteye giren her ziyaretçi için sistem bir Session ID (Oturum Numarası) belirler ve oturumu bu şekilde açar. Bu numaralar eşsizdir. Yani aynı numara o anda sistemde olan diğer üyelerden birine verilmez.

Alınan bu ID tarayıcı penceresi kapatılan kadar değişmez. Ziyaretçi pencereyi kapatırsa Session ID silinir, Tekrar siteye girildiğinde ise yeni bir Session ID atanır. Ziyaretçinin tüm yaptıkları sunucu tarafında saklanır.

Session ve Cookie arasındaki fark

Aralarındaki en büyük fark Session Sunucuda saklanır; Cookie ise tarayıcıda saklanır.

Kullanım amacı olarak benzerdir fakat Session daha güvenlidir.

Session tarayıcıda direkt olarak tanımlanmaz. Cookie‘lerin nasıl çalıştığını detaylı öğrenmek için Buradan yardım alabilirsiniz.

Cookie‘ler tanımlandığında Çerezin adı ve değeri tarayıcıya doğrudan gönderilir ve istenilen süre boyunca açıkça saklanır.

Session’daysa Ad ve Değer tarayıcıya gönderilmez. PHPSESSID isminde içinde uzun bir değer olan şifrelenmiş bir çerez tarayıcıya tanımlanır ve oluşturulan Ad ve Değerlerse Sunucuda saklanır ve PHPSESSID kimliğine göre kodlarla eşleştirme yapılarak kullanılır ve düzenlenir.

İşte bu yüzden Session daha güvenlidir.

Session Kullanıcı Giriş-Çıkış dışında Sanal Market Sepeti uygulamaları içinde kullanılır.

Session Başlat ve Oluşturma

session_start() fonksiyonu oturumu başlatan fonksiyondur. Oturum bilgilerine erişmek istediğimiz sayfaların başında olması zorunludur. Session‘ları oluşturmak ve kullanmak basittir.

Session‘ları $_SESSION global dizisi üzerinden okuyup, oluşturup, silebiliriz.

Deminde değindiğim gibi Session kullanacağımız her sayfanın başına session_start() fonksiyonunu yazmalıyız. Bu session‘ın olmazsa olmazıdır.

Not: Bazı sunucularda Session otomatik olarak hep açıktır, bu tür sunucularda session_start() yazarsanız hata alırsınız. Bu durumda bu fonksiyonu kullanmanıza gerek yoktur.

Şimdi ilk Session ımızı başlatalım ve oluşturalım. ilk.php adında bir dosya olusturun ve içine aşağıdakileri yazın;

<?php
session_start();
$_SESSION["ilkoturum"] = "Selam Dünya! Bu Bir Oturumdur";
?>

Yukarıdaki örnekte ilk önce Oturumu başlattık, sonra $_SESSION globaline bir anahtar ve değer atadık. Süper Globaller hakkında bilgi sahibi değilseniz PHP’de Global (Otomatik) Tanımlı Değişkenler yazımı okumanızı öneririm.

Şimdi örneği pekiştirmek için son.php isimli bir dosya oluşturun ve aşağıdaki kodları içine yazın;

<?php
session_start();
echo $_SESSION["ilkoturum"];
?>

Şimdi ilk.php‘ye girelim. ardından aynı pencerede son.php ye girelim. Sonuç olarak ilk.php dosyasında açtığımız ve oluşturduğumuz oturum içeriğine son.php‘den ulaşabiliyoruz.

Ziyaretçi tarayıcısını kapatmadığı sürece gezdiği her oturum sayfasında ilgili değeri görebilecektir. Bu işlemi Kullanıcı adı ve şifreyi hafızaya alarak her sayfada sistem kontrolü etmesi olarak düşünebiliriz.

Basit bir biçimde Form yardımıyla ilk sayfada Ziyaretçinin ismini isteyip sitenin her sayfasında ziyaretçiye Merhaba Kullanıcı yerine Merhaba Dinçer bey şeklinde ismiyle hitap edebiliriz.

Session Dizi (Array) Atama

Oluşturduğumuz Session a yazı, sayı gibi değerler atadığımız gibi Dizi değerleri de atayabiliriz. (Array) Bunu normal dizi tanımlar gibi yapmanız yeterlidir;

<?php
session_start();
$_SESSION["uye_ilgi_alanlari"] = array ("teknoloji","bilim","mobil");
?>

Bu şekilde Session içinde dizi verileri taşıyabiliriz. Örnekteki gibi üyenin ilgi alanlarını yazarak, üyeye göre içerik sunabiliriz.

Başka sayfada da ilgili veriyi Dizi olarak çağırıp kullanabiliriz.

Session Değer silme

Session Silme ile Session’dan değer silme iki ayrı şeydir. Session Silme (Sonlandırma) Session’ı (Oturumu) toptan kapatmak, sonlandırmaktır.

Session’dan değer silmeyse aşağıdaki şekilde gerçekleşir ve buna da Session Silme ismi verilebilir;

<?php
session_start();
$_SESSION["ilkoturum"] = "Selam Dünya";
// Şimdi oluşturduğumuz Session'ı siliyoruz.
unset($_SESSION["ilkoturum"]);
// ilkoturum isimli ve değeri olan Session'ı sildik</pre>
<pre>?>

Yukarıdaki işlemde bir Session başlattık, oluşturduk ve sildik.

Session var mı diye Kontrol etmek

Yukarıdaki kodlara ek olarak işlem bittiğinde Session’ın olup olmadığını kontrol edeceğiz. Bunu isset() fonksiyonuyla yapacağız.

<?php
session_start();
$_SESSION["ilkoturum"] = "Selam Dünya";
unset($_SESSION["ilkoturum"]);

echo isset($_SESSION["ilkoturum"]);
// Session'ı kontrol ettik
?>

Bu fonksiyon eğer içine yazdığımız Session varsa olumlu; yoksa olumsuz döner.

Session Silme ve Sonlandırma

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

<?php
session_start();
$_SESSION["ilkoturum"] = "Selam Dünya! Bu Bir Oturumdur";
session_destroy();
// Böylece Session'ı sonlandırdık
?>

Sağlıcakla Kalın.

ITC | İlkteknoloji