Cookieler serverimizde gerektiğinde kullanılmak üzere içerisinde istediğimiz değerleri barındırabilen istemci tarafında oluşturabildiğimiz dosyalardır.
Cookie ne için kullanılır?
Cookieleri genellikle kullanıcı tanımlama işlemlerinde kullanırız. En yaygın örneği login işlemlerinde beni hatırlaseçeneğinin yapımıdır. Burada yapılan işlem beni hatırla seçildiğinde istemci tarafında(siteye giren kullanıcının bilgisayarında) bir cookie dosyası oluşturarak içerisine o kullanıcıya ait eşsiz bir değişken yazılır. [...] Bu değişken kullanıcının bilgisayarında tutulur. Bu işlemi yapabilmemiz için, kullanıcının tarayısını cookie kabul edilebilir şekilde ayarlaması gerekmektedir. bu nedenle çok güvenli bir yöntem değildir. Değerli bilgilerin saklanması için tercih edilmez. İstemci tarafına yazdığımız cookie belirli bir ömür ile yaratılır. Örneğin bir haftalık yaratılan cookie bir haftanın sonunda istemci pc den kendiliğinden silinir. Peki bu yarattığımız cookie ne işe yarayacak. Eğer cookie nin ömrü bitmedi ise, istemci (kullanıcı) siteye tekrar girdiğinde daha önce istemciye yazdığımız cookie içerisideki değişkeni kullanarak login işlemi gerçekleştirilebilir. Bu sadece bir örnek, yapabileceğiniz şeyler çeşitlendirilebilir. Örneğin sitenizde birkaç çeşit tema kullanıyorsunuz ve bu temaları tek bir değer ile değiştirebiliyorsunuz. Bu değeride cookiede tutabilirsiniz. Php ile, cookie değerleri yaratabilir,gönderebilir,silebilir,güncelleyebilir yada kendini yok etmesini sağlayabilirsiniz. Görevimiz tehlike misali :)
Cookie Nasıl Yaratılır?
setcookie() fonksiyonu ile cookieleri yaratabiliriz.
Note: setcookie() fonksiyonu tarayıcıya herhangi bir header(başlık) bilgisi gönderilmeden önce kullanılmalıdır.
Sözdizimi:
setcookie(değişken ismi, değer, ömür(timestamp cinsinden), yol, domain);
Örnek:
kullanici adında $isim içerikli 10 saat ömrü olan bir cookie yaratalım.
CODE:
<?php
$isim = "Ahmet";
setcookie("kullanici", $isim, time()+36000);
?><html>
<body>
Server üzerinden 10 saat ömrü olan bir cookie aldınız bir cookie aldınız.
</body>
</html>
Cookie değeri nasıl silinir?
Tabiki cookie yi silebilmemiz için önce varlığını kontrol etmemiz gerekir. Eğer cookie tanımlanmış ise. Php de cookie yi değişken çağırır gibi çağırabilirsiniz.
Cookielere sadece cookie değişkeninin ismini yazarak(register_globals on ise) yada $_COOKIE["kullanici"] şeklinde ulaşabilirsiniz.
Bilgi: Cookie nin aktif olup olmadığını, kullanıcının bilgisayarına daha önce den cookie alıp almadığını isset() fonksiyonu yardımı sınayabiriz. Bir örnek verecek olursak.
Örnek:
Aşağıdaki örnek eğer kullanıcıya kullanici cookiesi gönderilmiş ise Hoşgeldin Ahmet gibi bir mesaj yazacaktır. Fakat daha önce gönderilmemiş yada ömrü bittiyse Siteye giriş yapmadınız! yazacaktır.
CODE:
<html>
<body><?php
if (isset($_COOKIE["kullanici"]))
$kullanici=$_COOKIE["kullanici"];
session_register("kullanici");
echo "Hoşgeldin " . $kullanici . "!<br />";
else
echo "Siteye giriş yapmadınız!<br />";
?></body>
</html>
Şimdi de bu cookie istemci bilgisayırından nasıl silinir bunu görelim.
CODE:
<?php
if (isset($_COOKIE["kullanici"]))
{
setcookie ("kullanici", $isim, time()-99999);
echo "Bilgisayarınızdan cookie silinmiştir.<br />";
}
else
{
echo "Cookie Mevcut Değil!<br />";
}
?>
Görüldüğü gibi cookie yi silerken de tanımlerken de setcookie() fonksiyonunu kullanıyoruz. Silerken yaptığımız tek şey cookie ömrünü şimdiki zamandan geriye almak. Böylece cookie nin geçerliliğini ortadan kaldırıyoruz.
Dia
okanatabag@gmail.com
2 Kasim 2005 16:08