Sessionlar php'de oturum yönetimi için kullanılırlar. Oturumlar ise ziyaretçiyi takip etmek başka sayfalara veri aktarmak için kullanılırlar. Sessionu en çok kullandığımız yerlerden birisi de üyelik sistemleridir. Ziyaretçi üye girişi yapmışsa ona bir oturum değişkeni atarız ve bu değişkenin varlığına göre üye girişi yapıp yapmadığını anlayabiliriz. Böylece ziyaretçinin istediğimiz alanlara girmesini yada girmemesini sağlayabiliriz. Session oturum ile ilgili verileri server ortamında saklar ve veriler server ortamından okunur. Ziyaretçinin bilgisayarına hiç bir veri gönderilmez ve tarayıcı kapatıldığında sessionlar otomatik olarak silinirler. Yani oturum sonlandırılır. Bir oturum işlemi şu aşamalardan oluşur:
Öncelikle bir oturum başlatırız ve bu oturuma özel bir numara (session id) atanır.
Bu id ile aynı adı taşıyan bir dosya sunucuda oluşturulur.
Oturum boyunca verilere bu dosyadan erişilir.
Ziyaretçi siteden ayrıldığında dosya silinir ve oturum sonlandırılır.
Bir oturum başlatmak için:
PHP:session_start();
fonksiyonunu kullanırız. Bu fonksiyon sayfanın en üstünde yer almalı. Yoksa hata mesajı ile karşılaşırsınız. session_start() fonksiyonu öncelikle bir oturum açılmışmı diye bakar eğer açılmışsa oturumu devam ettirir. Eğer bir oturum yoksa yeni bir tane başlatır. Başlatılmış bir oturumun id'sine erişmek için:
PHP:session_id();
fonksiyonunu kullanırız. Bu fonksiyon ile başlatılan oturumun id'sini elde ederiz. Bir oturum değişkenini şu şekilde oluşturabiliriz:
PHP:<?php
$_SESSION['sessionunadi'] = "değer";
?>
sessionunadi şeklinde başlattığımız oturumun adını ve değer şeklinde de taşıyacağı değeri belirtiyoruz.
Basit bir oturum örneği oluşturalım:
PHP:<?php
session_start();
$_SESSION['ad'] = "altayalp";
echo 'Adınız: '.$_SESSION['ad'].'';
?>
<a href="sayfa2.php">2. Sayfaya Devam Edin</a>
Yukarıda verdiğim kodları sayfa1.php adıyla kaydedin. Sayfayı çağırdığınızda ekranda "Adınız: altayalp" yazacak. Oturumu başlattık oturum değişkeni oluşturduk ve oturum değişkenini ekrana yazdırdık. sayfa2.php de oturumun devam etmesi için yine session_start() fonksiyonunu sayfamızın en üstüne eklemeliyiz. Yoksa oturumumuz devam etmez ve sonlandırılır. sayfa2.php:
PHP:<?php
session_start();
echo 'Adınız: '.$_SESSION['ad'].'<br />';
echo 'başlatılan oturumun idsi:' . session_id();
?>
Çıktı olarak tekrardan "Adınız: altayalp" ve açılan oturumun numarasını alırsınız. sayfa2.php sayfamızda hiç bir değişken oluşturmadığımız halde $_SESSION['ad'] oturum değişkenine erişebiliyoruz.
Oturum değişkeni kontrolü:
Oturum değişkenini kontrol etmek için, mesala ziyaretçi üye girişi yapmışmı şeklinde bir kontrol yapmak istiyoruz:
PHP:<?php
if(isset($_SESSION['ad'])) {
echo "sayfa1.php'ye giriş yapmışsınız";
} else {
echo "oturum değişkeni bulunamadı lütfen sayfa1.php'ye giriş yapın";
}
?>
Oturum açılmışmı açılmamışmı bu şekilde kontrol edebiliriz.
Oturum değişkeninin silinmesi ve oturumun sonlandırılması:
Oturum değişkenlerini silmek için unset() fonksiyonunu, oturumu sonlandırmak için session_destroy() fonksiyonunu kullanırız.
PHP:<?php
unset($_SESSION['ad'); // oturum değişkeni siliniyor
session_destroy(); // oturum sonlandırılıyor
?>
Bu kodları kaydedip çalıştırdığınızda ve daha sonra sayfa2.php'ye geri döndüğünüzde oturum değişkenine ulaşamadığınızı yani değişkenin silindiğini göreceksiniz. Eğer ilk sayfaya geri dönerseniz yeni bir oturum başlatılacaktır. Şimdilik bu kadar kolay gelsin.