
Php4 versiyonu ile birlikte kullanılmaya başlanan Session yani Oturum, ziyaretçi bilgilerini diğer sayfalar arasında kullanabilmemizi, özelleştirilmiş sayfalar oluşturmamızı ve şifreli sayfalar gibi daha birçok konuda bize yardımcı olan çok faydalı bir özelliktir.
Siteye giren her ziyaretçi için öncelikle o ziyaretçiye özel Session ID ile oturum açılır.
Bu ID tarayıcı penceresi kapatılana kadar o site için değişmez. Ziyaretçi pencereyi kapatırsa sunucudaki Session ID değeri silinir ve tekrar siteye girdiğinde yeni bir Session ID atanır. Ziyaretçinin tüm etkinlikleri, sunucu tarafında kaydedilir. Örneğin alışveriş sitelerinde gördüğünüz sepet işlemleri ve bazı özelleştirmeler Session ID ile yönetilir.
Kullanımı:
<?php session_start() ?>
session_start() fonksiyonu oturum bilgilerine erişilmek istenen sayfaların başında mutlaka olması gereken bir komuttur. Session aslında kullanımı gayet kolay bir özelliktir, hemen basit bir uygulama ile ne kadar kolay olduğunu görelim.
Örnek Üyelik Sistemi
Giriş bilgilerini içinde tutacağımız ayarlar.php dosyamızı oluşturuyoruz.
<?php $kullanici = "admin"; $parola = "1234"; ?>
Şimdi de ziyaretçinin giriş yapacağı index.php dosyamızı oluşturalım. Ziyaretçi bu sayfadan giriş yapacak.
<form action="denetim.php" method="POST"> Kullanıcı Adı: <input type="text" name="kullanici"><br /> Parola: <input type="password" name="parola"><br /> <input type="submit" value="Giriş Yap"> </form>
Şimdi de giriş bilgilerinin denetleneceği ve sonucuna göre işlem yapacağımız denetim.php dosyasını oluşturuyoruz.
<?php include("ayarlar.php"); session_start(); if(($_POST["kullanici"]==$kullanici) and ($_POST["parola"]==$parola)) { $_SESSION["giris"] = "true"; $_SESSION["kullanici"] = $kullanici; $_SESSION["parola"] = $parola; header("Location:yonetim.php"); } else { echo "Kullanıcı adı veya Şifre Yanlış.<br>"; echo "<a href=index.php>Geri dön</a>"; } ?>
denetim.php dosyasında $_SESSION özelliğini kullanarak 3 yeni session tanımladık. Bunlardan giris isimli olan true değerini taşır ve diğer sayfalarda bu değişken yardımıyla giriş yapılıp yapılmadığını kontrol ederiz. kullanici ve parola session’ları da giriş yapan ziyaretçinin kullanıcı adı ve şifre bilgisini tutacak, gerektiğinde yine bu bilgiler kullanılabilecek.
Şimdi yonetim.php isimli yönetim sayfasını oluşturalım
<?php include("ayarlar.php"); session_start(); if(!isset($_SESSION["giris"])) { echo "Bu sayfayı görüntüleme yetkiniz yoktur.<br>"; echo "<a href=index.php>Giriş sayfası</a>"; } else { echo "Admin Paneli<br>"; echo "<a href=\"cikis.php\">Çıkış Yap</a>"; } ?>
yonetim.php dosyasında kullandığımız isset() fonksiyonu, içerisine gönderilen değişkenlerin var olup olmadığını kontrol eder. Yani bir değişken daha önceden tanımlanmışsa TRUE tanımlanmamışsa FALSE değerini döndürür. Biz giriş yapan ziyaretçi için giris isimli bir session tanımlamıştık, bu sayfada onun var olup olmadığını kontrol ettik.
Şimdi giriş yapan kullanıcının çıkış yapması için cikis.php dosyasını oluşturalım
<?php session_start(); session_destroy(); echo "Çıkış işlemi tamamlandı."; echo "<br><a href=index.php>Anasayfa</a>"; ?>
cikis.php dosyasında kullandığımız session_destroy() komutu açılmış olan oturumun tüm bilgilerini silmek için kullanılır. Bu uygulamayı localhost’ta çalıştırıp inceleyin. session kullanımının ne kadar basit olduğunu göreceksiniz.
Makalenin çalışma dosyalarına http://www.celalyurtcu.com/dosyalar/session.zip adresinden ulaşabilirsiniz.