Anasayfa » Codeigniter

Codeigniter Dersleri – 25 – Helper Dosyalarında Session ve Cookie Kullanımı

21 Ocak 2012 32.850 kez okundu Yorum yok
1 Star2 Stars3 Stars4 Stars5 Stars (5 oy,5 üzerinden : 5,00 )
Loading...

Codeigniter da proje yazarken, controller dosyaları içerisnde session ve cookie kullanımından bahsetmiştik. Peki bu yapıların kendi oluşturduğumuz helper fonksiyonları içersinde kullanımı nasıl olacak?

Cookie ler ve sessionlar farklı yapıdır. Sistemde cookieler helper fonksiyonları iken, session lar librarydir. Yani düz mantıkla anlatmak gerekirse cookiler sadece fonksiyondur ve direk kullanılabilirler. Oysaki sessionlar class dır ve kullanılmadan önce tanımlanması gerekir.

Dediğim gibi autoload.php içerisinde helper bölümüne “cookie” yazdıktan sonra istediğimiz her yerde kullanabiliriz. Ancak session kullabilmek için autoload.php içerisindeki  libraries bölümüne “session ” ekledikten sonra örnek bir kullanım inceleyelim.

function is_logged_in()
{
		$CI =& get_instance(); 
 
		$is_logged_in = $CI->session->userdata('kullanici_adi');//Burada oturumdan is_logged_in değerini çekiyoruz. Eğer true dönerse bir kullanıcı giriş yapmış demektir.
		if(!isset($is_logged_in) || $is_logged_in != true)//is_logged_in set edilmiş mi ve set edildi ise değeri true mu? Cevabımız evet ise bu fonksiyon bir problem çıkarmıyor ve yolumuza devam edip sayfamıza erişiyoruz.
		{
			return false;
		}
		return true;
}

Burada süper classın adresini $CI değişkenin atıyoruz. Bu şekilde classımızın tüm nimetlerinden faydalanabiliyoruz. Süper classın adresini

1
$CI =& get_instance();

şeklinde çekiyoruz ve direk erişim yetkisine sahip oluyoruz.

Daha sonra
$this-> session->userdata();
yerine
$CI->session->userdata(); şeklinde kullanabiliyoruz.

Helper dosyalarınızdan sınıflara erişmek istiyorsanız hepsi için bu yöntemi kullabilirsiniz.

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

Yorum Bırakın!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.