Öneri ve Hata Raporu



Günün Sözü Asla yalnız yürümeyeceksin

oylama 3.1/5 yorum 0 yorum yazar Hakan Taşan tarih 30 Haziran 2015

Session (oturum) kullanarak kullanıcının siteyi gezerken yaptığı aktiviteleri kontrol etmek mümkündür. Çalışma prensibi kısaca şöyledir; bir siteyi ziyaret ettiğinizde, server (sunucu) tarafından tarayıcınıza bir session ID değeri gönderilir (session ID değerleri her kullanıcıya özgüdür). Tarayıcınız bu session ID değerini bilgisayardaki cookie'lerde (çerezlerde) aramaya başlar. Siteyi ilk defa ziyaret ettiğiniz için böyle bir değer bulamaz ve bu session ID değerini hemen o siteye ait çerezlere kaydeder. Aynı zamanda sunucu tarafında da session bilgileriniz (session ID'niz, IP adresiniz, son giriş zamanınız, kullanıcı adınız vb.) kaydolunur. Bundan sonra site üzerinde yapılan bütün gezinmelerde bu session ID üzerinden veri gönderimi gerçekleştirilir. Sayfalar arası geçişlerde eğer tarayıcı çerezlerde session ID değerini bulursa, sunucu tarafından tanınmış olursunuz ve sunucu tarafındaki bilgileriniz güncellenir (ayar yapılmışsa session ID'de yenilenebilir). Eğer tarayıcı çerezlerde session ID değerini bulamazsa (çerezleri silme, çerezlerin zaman aşımına uğraması vb. gibi nedenlerle) yeni bir session ID değeri çerezlere kaydedilir. Böylelikle döngü devam eder. Daha detaylı bilgileri bu yazıda okuyabilirsiniz.

Codeigniter'da session sınıfı hazır olarak gelir. Bu yüzden session sınıfını kullanmadan önce session sınıfını her defasında controller'da çağırmak gerekir ya da hiç bunlarla uğraşmayıp session kütüphanesi otomatik olarak yüklenebilir. Bunun için;

Değiştireceğimiz dosya: application\config\autoload.php

$autoload['libraries'] = array(); değerini $autoload['libraries'] = array('session'); olarak değiştirin.

$autoload['libraries'] = array();

$autoload['libraries'] = array('session');

 

Session Oluşturma ve Veri Ekleme

Session'a veri eklemek için set_userdata() fonksiyonunu kullanacağız.

$this->session->set_userdata('anahtar_degeri', 'deger');

 

Session Verilerine Ulaşma

Session verilerine ulaşmak için userdata() fonksiyonunu ve session oluştururken tanımladığımız 'anahtar_degeri' kullanacağız. userdata() fonksiyonu TRUE ya da FALSE değer döndürür.

$this->session->userdata('anahar_degeri');

 

Session Kontrol Etme

userdata() fonksiyonu TRUE ya da FALSE değer döndüreceğinden basit bir if koşulu ile kontrol edebiliriz. Bu yüzden isset() ile kontrol ederseniz hata alırsınız.

if($this->session->userdata('anahtar_degeri'))
    echo "Session Kaydı Var";
else
    echo "Session Kaydı Yok";

//Çıktı: Session Kaydı Var

 

Session Verilerini Silme

Session silmek için unset_userdata() fonksiyonunu kullanacağız.

$this->session->unset_userdata('anahtar_degeri');

 

Session ID Değerini Öğrenmek

Gelişmiş tarayıcılar aracılığıyla session ID değerini öğrenmek çok basitleşti. Chrome kullanıyorsanız mouse ile sağ tıklayıp 'Öğeyi Denetle', Mozilla Firefox kullanıyorsanız 'Öğeyi İncele' yaparak öğrenebilirsiniz.

paylaş Paylaş
oylama yap Oyla

makale yorumları YORUMLAR

Bu makale için yorum yazılmamış