Severity: 8192
Message: Return type of CI_Session_files_driver::open($save_path, $name) should either be compatible with SessionHandlerInterface::open(string $path, string $name): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 113
Severity: 8192
Message: Return type of CI_Session_files_driver::close() should either be compatible with SessionHandlerInterface::close(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 280
Severity: 8192
Message: Return type of CI_Session_files_driver::read($session_id) should either be compatible with SessionHandlerInterface::read(string $id): string|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 145
Severity: 8192
Message: Return type of CI_Session_files_driver::write($session_id, $session_data) should either be compatible with SessionHandlerInterface::write(string $id, string $data): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 223
Severity: 8192
Message: Return type of CI_Session_files_driver::destroy($session_id) should either be compatible with SessionHandlerInterface::destroy(string $id): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 303
Severity: 8192
Message: Return type of CI_Session_files_driver::gc($maxlifetime) should either be compatible with SessionHandlerInterface::gc(int $max_lifetime): int|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
Filename: drivers/Session_files_driver.php
Line Number: 344
Severity: 8192
Message: setcookie(): Passing null to parameter #7 ($httponly) of type bool is deprecated
Filename: core/Input.php
Line Number: 410
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.
YORUMLAR