Ajanda

Cookie Okuma Sorunu ?

Posted by: M.Can on: Temmuz 29, 2008

Sorun: Cookie’yi bıraktığım dizinin üst dizinlerinde okunmuyor?
Çözüm: Cookie’ler bildiğimiz üzere domain ve dosya tabanlı çalışır. Yani eğer cookie’yi a klasörünün içine bırakırsanız sadece orda ve alt klasörlerinde okuyabilirsiniz. Tabi bunu çözmenin bir yolu var…

Bildiğimiz gibi cookie’leri aşağıdaki kod parçası ile yapıyoruz..

setcookie("cookie_adi","cookie_değeri",time()+istenensüre);

Önce bu kodları kısaca açıklayalım.

  1. Cookie Adı: Bu genelde üyelik sistemlerinde kullanıcı ismini yazmakta kullanılır yada site adı. Eğer “beni hatırla” kutucuklarını biliyorsanız, bu kutuyu işaretlediğinizde genelde isminize ait bir cookie bırakılır. Bu sayede browserı kapattığınızda ve yeniden açtığınızda siteye tekrar giriş yapmak zorunda kalmazsınız.
  2. Cookie Değeri: Bu ise “cookie_adı”nın değeridir. Yani Cookie adı “Yaş” ise cookie değerininde 36 girebilirsiniz. Genelde if’li döngüler içersinde kullanılır. Eğer bu cookie değeri buysa şunları yap şeklinde.
  3. Time(): Bu ise cookie’nin geçerliklik süresidir.  time() fonksiyonu ile o andaki süreyi çekeriz ve “+istediğiniz süre” bununlada cookie’nin bırakıldığı zamandan daha ne kadar süre sonraya kadar aktif olacağıdır. Mesela + 600 yazdığımızda 10dk’lık bir cookie bırakmış oluruz. time() fonksiyonun yanında yazdığımız değer saniye değeridir…

Cookie bırakmayı ufak bir şekilde anımsadıktan sonra esas konumuza dönelim. Cookie’de üç değer kısmı gördük. Şimdi bunlara 1 tane daha ekleyip etki alanını ayarlıcaz. Aşağıdaki kodu inceleyelim.

setcookie (“cookie_adi”,”cookie_değeri”,time()+süre,”/”);

Koddaki en sonki kısma dikkat ediniz (“/”) bu kısım belli bir domain altındaki tüm dosyalarda bu cookie’nin okunabilir olmasını sağlar.

Saygılarımla…

Yorum Yapın