Tweet

PHP | Cookie Kullanımı

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

İlgili Olabilecek Makaleler


Yorumlar (13)





anl92
6 Ekim 2008 16:47
Güzel Anlatım Olmuş.


akonnew
13 Kasim 2008 15:42
Warning: Cannot modify header information - headers already sent by (output started at C:wampwwwwebdefteriindex.php:40) in C:wampwwwwebdefterimain.php on line 22
diye bir hata alıyorum.sebebi nedir..


akonnew
14 Kasim 2008 10:22
yok mu cevap yazacak olan birileri


killer12
2 Ocak 2009 17:46
Teşekkürler.


sansiro
19 Mart 2009 15:02
Abi süpersiniz ya..!


nasrullahkeskin
16 Nisan 2009 00:56
ĞEYOLAR(ARAPÇA KARDEŞ DEMEK) ÇOK İYİ İŞ ÇIKARMIŞINIZ AFERİNLER OLSUN BEĞENDİM HARİKA PERFCT MÜKEMMEL
BİLGİ PAYLAŞILDIKÇA ARTAN HAZİNEDİR ;
SAKINA SINIF ARKADAŞLARINIZDAN NOT SAKLAMAYIN


phpcoder
3 Mayis 2009 12:25
teşekkürler


alqoliq
23 Mayis 2009 21:25
şu yol olayı nasıl onu açıklayabilir misiniz. uyelik diye bir klasör oluşturdum onun içnide kullanıyorum ana dizinde bir dosyaya cookieleri okutmak istiyorum.
setcookie(değişken ismi, değer, ömür(timestamp cinsinden), yol, domain);

tam olarak örnekle açıklarsanız sevinirim.


bayfirat
18 Ocak 2010 18:33
çok teşekkürler yardımcı olabilecek bir makale


emotionx
11 Temmuz 2010 20:23
Merhaba,
Aca kullanıcının ismi yerine idsini cookieye yazdırsak o nasıl oalcak ?


emotionx
21 Temmuz 2010 11:02
Peki ben bir sistem yapmıştım. Çok gerkeli bişe sorcam. Eğer adam facebooktaki gibi mesela pencereyi kapatırsa nasıl cookiyeyi sildiririz. Online offline durumu yapmıştım çok gereki.


royiv24
18 Nisan 2011 23:21
Hocam, açıklama için çok teşekkürler. Bir sorum olacak bu işlemi gayet güzel yapıyorum sorunum yok, hoca bitirme ödevi verdi sağolsun ve bnm projemde siteye giriş yapan üyeler online üyeler bölümünde görünücek bunu nasıl yapabilirim?

Yardımcı olursanız gerçekten çok iyi olur.

Şimdiden teşekkürler...


emrettin
7 Ekim 2011 03:55
merhaba arkadaşlar ben bu foruma daha yeni oldum.bişey sormak istiyorum php de üyelik sistemi yapmak isteseniz cookie mi yoksa session mu kullanırdınız.

Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg