RSS

PHP Cookie (Çerezler)

30 02 Haziran 2010 ~ Musa Avcı — Başlangıç

cookieGirilen sitelerin tarayıcılar(browserlar) üzerinde bıraktığı izlere cookie, Türkçesiyle de çerez denir. Bu izler siteye tekrar ziyaret edildiğinde yeniden gönderilerek bazı şeylerin yeniden hatırlanmasını sağlar.

Mesela giriş formlarında kullanıcının şifresini ve kullanıcı adını cookieler sayesinde tarayıcıya kaydederek bir sonraki gelişinde bilgilerini yeniden girmek zorunda kalmadan direkt giriş yapabilir.

Temel olarak kullanıcı bilgilerini hatırlanmasında kullanılan çerezleri hayal gücünüzün el verdiği kadar bir çok alanda da kullanmak mümkün.

Cookie oluşturma

PHP’de cookie oluşturma işini bir setcookie() fonksiyonu ile yapıyoruz. Fonksiyonda tarayıcıya gönderilecek ve saklanacak olan değerin anahtarını ve içeriğini belirttiğimiz gibi bir de ne kadar süre tarayıcıda saklanacağınıda belirtiyoruz.

setcookie("çerezim", "selam dünya");

Yukarıdaki örnekte çerezim adında bir cookie oluşturduk ve değerinide selam dünya yaptık. Ve 3. parametre olarak hiç bir şey girmediğimiz için varsayılan olarak tarayıcı kapatıldığında çerez silinecek.

Eğer çerezin bizim istediğimiz bir gelecek tarihte silinmesini istiyorsakta 3. parametreyi devreye sokacağız. İşte bunun içinde bir örnek:

setcookie("çerezim", "selam dünya", time() + (60*60*24));

Şimdi 3. olarak girdiğimiz time() + (60*60*24) bu parametre şu anki zamana saniye cinsinden 60*60*24 tam olarak 24 saat yani 1 gün eklemiş olduk.

Bu oluşturduğumuz çerezin son kullanma tarihi şuandan itibaren + 24 saat sonra demek oluyor. 1 gün sonrasında bu çerez siteye girildiğinde gönderilmiyor olacak.

Cookie silme

Oluşturduğumuz bir çerezi silmek için yine normal bir çerez tanımlarmış gibi setcookie() fonksiyonunu kullanıyoruz. Tek fark 3. son kullanma tarihi paramteremize geçmiş bir zaman giriyoruz. Bu sayede çerezin tarihi dolmuş varsayılıp hemen siliniyor. Örnek olarak bu çereze time() – 3600 diyerek 1 saat öncesini göstereceğiz ve çerez silinmiş olacak:

setcookie("çerezim", "selam dünya", time() - 3600);

Cookie kullanımı

Çerez kullanımı $_COOKIE dizisi üzerinden yapılır. Bu dizi otomatik olarak o sayfaya gönderilen çerezlere göre oluşur. Yukarıdaki oluşturduğumuz çereze ulaşmak için aşağıdaki kodu kullanırız, ki bu koddan ne kadar basit ve anlaşılır olduğu belli oluyor:

echo $_COOKIE['çerezim'];

Ekranda yukarıdaki örneğin devamı olarak gösterdiğimiz bu örnekten ötürü selam dünya yazar.

Cookie değerini değiştirmek

Çerezleri oluşturmakta ve silmekte olduğu gibi değerini değiştirmekte de setcookie() fonksiyonunu kullanıyoruz. Ve oluşturmakta olduğu gibi değerini değiştirmekte aynıdır. Sadece çerez adına önceden tanımladığımız adı yazmamız yeterli. Eğer çerez yoksa oluşturulur varsa değeri değiştirilir.

setcookie("çerezim", "selam dünya");
setcookie("çerezim", "merhaba dünya");

echo $_COOKIE['çerezim'];

Ekranda merhaba dünya yazar.

Cookie tanımlanmış mı diye bakmak

Tüm değişkenlerin varlığını kontrol edecek olan isset() fonksiyonu ile bir çerezin tanımlanıp tanımlanmadığını bulabiliriz. Kullanımı if ifadesi ile olacak olan bu fonksiyonun bu kullanımını henüz bu ifadeyi anlatmadığımız için örnek göstermiyorum.

echo isset($_COOKIE['olmayan']);

Ekranda bir şey yazmaz, FALSE değeri döner. Çünkü böyle bir çerez tanımlamadık. Tanımlanmış bir çerez olsaydı ekranda olumlu manada 1 yazardı.

Bir sonraki PHP serüveninde görüşmek üzere hoşçakalın.

Etiketler:

Yazılanlar ilgini çektiyse, yenilerinden haberdar olmak için e-mail bültenine abone olabilirsin.

"PHP Cookie (Çerezler)" yazısı için 30 yorum yapılmış.

  1. Ali Görkem dedi ki:

    Uzun süredir bu yazıları bekliyordum sayenizde sindire sindire albaştan öğreniyorum PHP’yi.Teşekürler….

  2. […] PHP ile çerezler(cookie) ve session (oturum yönetimi). […]

  3. […] dizileri PHP from kullanımı ve örnekleri, PHP Cookie ve PHP Session başlıkları altında detaylı bir şekilde ele […]

  4. Atilla dedi ki:

    Dersler şu ana kadar müthiş ilerliyor. Sayenizde sıfırdan kodlama öğreniyorum. Anlatımınız benim bile anlayabileceğim(!) sadelikte. Özellikle ‘sabır’ ile iilgili dersiniz -ki sadece php’yi değil, başarının hedeflendiği her çeşit ‘şey’i öğretiyor- müthiş. Hem Musa Bey’e, hem de site için emeği geçen herkese sonsuz teşekkürler.

  5. mehmet dedi ki:

    teşekkürler…. bu sayfa benim seviyemi belirledi

  6. Kerim dedi ki:

    Cookie’ler ile kullanıcının hangi websitelerini,hangi eylemleri gerçekleştirdiğini izleyebilirmiyiz,eğer evet ise nasıl?

  7. FATİH dedi ki:

    ahmet adında iki kullanıcım olsun ve şikisinde emaili ayrı olsun
    cookie olştuurken emaile göremi yoksa isme göre yapsam sorun olurmu

    • Yılmaz dedi ki:

      İsme göre yapmanız daha mantıklı olur zaten PHP’de büyü harf küçük harf algılaması var birini “ahmet” diğerini “Ahmet” yapsanız bile uygundur.

  8. YEŞİM dedi ki:

    bilişim bölümü öğrencisiyim sayenizde ödevimi yaptım teşekkürler

  9. metin dedi ki:

    kendi sayfamda çerez oluşturup bunu sayaç kullanımında kullanmak istiyorum localde çalışıyor ama sunucuya atınca çerez çalışmıyor neden acaba

  10. Emrah Tunçel dedi ki:

    Çerezler içersinde kullanıcı adı ve şifresini tutmak son derece sakıncalıdır…

    Çerez içerikleri tarayıcıda bir kullanıcı tarafından okunabilir. Dolayısı ile hesap bilgilerini kötü niyetli kişiler tarafından çok kolay elde edilebilir bir veri haline getirmiş olursunuz. Sonra bu veriyi sisteme giriş yapmka için kolayca kullanabilirler. Oysa çerezde kullanıcı ID bilgisini saklamak ve buna göre oturumu hatırlamak çok daha doğrudur!

    Oturum yönetimi için ise zaten SESSION kullanımı uygundur.

  11. zihni ates dedi ki:

    madem bastan basliyorsun cok iyi cok guzel de simdi yeni baslayanlarin hic bir sey bilmedigini atliyorsun… mesela ben? cidden bilmiyorum öğrenmek istiyor ve öğrenmeye calisiyorum ” ne zaman kullanılır? isset nedir? ne zaman kullanılır? “xxx” , “xxx” ‘daki , neden ortada sağdan soldan boşluklu yazıyor? , ne işe yarar? gibi gibi…

  12. Orhan Gazi dedi ki:

    Guzel bir ogreti. Tesekkurler..

  13. Dilara dedi ki:

    tşk ederim kendi kullaıcı formunda kullanacağım

  14. Fethi dedi ki:

    Bu konuya bakarken isset fonksiyonunu da öğrenmiş oldum.
    Ayrıntılı anlatım için gerçekten teşekkür ederim.

  15. cakin dedi ki:

    if (isset($_COOKIE[‘olmayan’]);)
    dediğimde hata veriyor. Bunun kullanım yolu nedir?

  16. Alp dedi ki:

    Neden şuanda aktif olarak faliyet göstermiyorsunuz?

  17. Musa dedi ki:

    Yıllardır beğenerek okuduğum php blogu ve aynı isime sahip olduğumuz bir blogger. Özgün anlatımlarınız için teşekkürler…

  18. mert dedi ki:

    cokie ile kullanıcı girişinide keşke gösterseydiniz

  19. Abdullah dedi ki:

    Hocam güncel yeni derslerinizi en kısa sürede bekliyoruz

  20. zeyneb dedi ki:

    cok tesekkur ederim . cok iyi anlatmissizin.

  21. Yılmaz dedi ki:

    Html,js,jquery,C#,C++ dillerini kendi başıma öğrendim geliştirdim wordpress’e başladım çok harika fakat şu PHP’yi adam gibi anlatabilen yok diyordum bu siteyi görene kadar helal olsun emeğe saygı klavyeyi bıraktım ayağa kalktım alkışlıyorum şuan

  22. ebru dedi ki:

    her şey detaylı bir şekilde anlatılmış teşekürler

  23. Serdar Ortaç dedi ki:

    Teşekkurler.

  24. Hakan Okay dedi ki:

    Ziyaretçinin çerezlerinin açık kapalı olduğunu nasıl gösterebiliriz?

  25. nurhan samet dedi ki:

    anlatım çok güzel açıklayıcı her şey anlatılmış yardımcı olduğunuz için Teşekkürler. 🙂

PHP’ye başlıyoruz ‒ phpr.org için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir