PHP de Çerez (Cookie) İşlemi

PHP de Çerez (Cookie) İşlemi

Hepinize merhaba dostlarım :). Bu yazımda php de sıklıkla kullanılan özellikle de son zamanlarda web sitelerinde karşımıza çıkan (Çerez Kullanımlarına İzin Ver) şeklinde çıkan,  E-Ticaret sitelerinin vazgeeçilmezi olan çerezlerden (cookie) bahsedeceğim :). Biraz session yapısını andırıyor dostlarım ama herhangi bir oturum yöneticisi gibi değildir bunda belli zaman giriyoruz :). Sabırsızlandığınızın farkındayım dostlarım öğrenmek istiyorsunuz :). Ben de sözü daha fazla uzatmadan konuya giriş yapayım :).

Çerez (Cookie) Nedir ve Nerelerde Kullanılır ?

Dostlarım gelelim ilk başta çerez (cookie) nedir onu öğrenelim. Çerezler web sitesinde bıraktığımız izler olarak tanımlanır. Yukarıda da bahsetmiştim çerezleri kabul et dediğimizde o siteye bir iz bırakmış oluruz. Daha sonra o siteyi programlayan dostumuz tarafından belirli bir zaman diliminden sonra çerezimiz silinir :). Yani iz bıraktık ve o iz belirli süreden sonra silinmiş oldu dostlarım :).

Çerezlerin nerede kullanıldığına gelecek olursak dostlarım örneğin bir E-Ticaret sitesine girdiniz seçtiniz ürünleri sepete aktardınız. Belirli süreden sonra hala sepetinizde duruyorsa (üyelik veya kayıt işlemleri yapmadığınız durumlardan kastediyorum) bilin ki site çerez tutuyor ve ola ki üye olur veya giriş yapar bu ziyaretçi diye :). Üye olduğumuzda veya giriş yaptığımızda çerezde ayrılıp bizim hesabımızda sepet oluşturup oraya aktaracaktır :). Bir diğer kullanım alanı ise dostlarım bir blog sitesi düşünün bu sitede bültene abone ol bildirimi var diyelim. Bunun sürekli ziyaretçinin karşısına çıkması ne kadar can sıkar değil mi :). İşte programcı burada bir cookie oluşturup bir kere karşısına çıkması daha sonra da kullanıcının isteğine bırakması güzel bir kullanım olabilir :).

Evet dostlarım çerezlerin (cookie) tanımına ve nerelerde kullanıldığına değindik. Şimdi ise gelin çerezlerin nasıl oluşturulmasına bakalım

Çerez (Cookie) Nasıl Oluşturulur ?

Dostlarım çerezlerin oluşturulması için session daki gibi session_start() gibi bir komut kullanılmaz :). Kendisi süper global değişken olduğu için her yerde rahatlıkla çerez oluşturma işlemini başlatabiliriz :). Cookie oluşturmak için yazacağımız kod parçası

setcookie()

komutunu kullanırız dostlarım. Bu komut ise 3 parametre alır.

  1. Parametre: Çerez (cookie) Adı
  2. Parametre: Çerez (cookie) Değeri ----> (çerezin alacağı değişken türü (dizi,string,int olalbilir))
  3. Parametre: Çerez (cookie) Aşım Süresi  (saniye cinsinden)

Şekildeki gibi dostlarım çerezimiz 3 parametre alır :). Gelin bunlara da değindiğimize göre ilk Çerezimizi (cookie) oluşturalım

<?php
     setcookie("site","mfsoftware.net",60);
?>

şeklinde çerezimizi (cookie) tanımladık dostlarım. Şimdi sizin akıllarınızdaki soru şu olacaktır dostlarım :)

Hocam iyi güzel çerez oluşturduk da bunun değerini nasıl ekrana bastıracağız ?

güzel soru dostlarım. Bunu ekrana yazdırmak için ise aynı session larda olduğu gibi bir kullanımı var :). Hemen inceleyelim bunu da

<?php
     echo $_COOKIE['site'];   // Ekrana bastırma işlemini yaptık

    // Ekran Çıktısı:  mfsoftware.net
?>

şeklinde dostlarım kodumuzu yazdık. Cookie değerimiz yukarıda tanımladığımız gibi 60 saniye tutulacaktır ve daha sonra yok edilecektir :).

Çerez (Cookie) Nasıl Silinir ?

Çerez oluşturmayı kavradığımıza göre çerez silmeyi de kavramamız lazım dostlarım :). Çünkü bir konuyu sadece belirli kısmından kavramak olmaz tamamiyle kavramamız lazım :). Çerez silmeye gelecek olursak dostlarım yukarıda verdiğim örnekte ziyaretçi ürünü seçti ve aynı zamanda üye kayıt işlemlerini yaparak üye oldu sisteme. Önceden sepetinde seçtiği ürünler cookie den session a aktarılması işlemi sağlandı ve cookie verilerinin silinmesi zorunlu oldu. Silinmezse öyle kendi kendine durması ve cookie nin kendini yok etmesi iyi mi olur muydu derseniz dostlarım olmazdı :). Çünkü hadi 1 ay süre verilmişse cookie ye 1 ay beklenilecek miydi kendi kendini silsin diye :). Bu olmaz dostlarım pratik bir yöntem değil. Bunun için cookie yi silmemiz lazım. Bunu da aşağıdaki gibi bir yapıyla yapıyoruz

<?php
    setcookie("site",time()-3600);
?>

şeklinde kodumuzu yazıyoruz. Cookie silme işlemi 2 parametre alıyor dostlarım

  1. Parametre: Çerez (cookie) Adı
  2. Parametre: Çerez (cookie) Silme Komutu  

şeklinde yazdığımız zaman dostlarım çerezimiz silinmiş oluyor :). Ben yukarıdaki örnekte oluşturduğum "site" isimli cookie üzerinden örnek verdim dostlarım :). Siz projelerinizde gerekli yerlerde cookie kullanabilirsiniz. Şimdi ise gelelim asıl kısım olan cookie kontrolüne

Çerez (Cookie) Varlığını Anlama

Evet dostlarım cookie oluşturma ve silme kadar önemli olan bir başlık olan cookie varlığını anlama konusuna geldik :). Nedir bu cookie varlığını anlama derseniz mantıksal bir açıklama yapayım :). Dostlarım hatırlarsanız php örneklerinde form dan submit verisi gelmiş mi veya değerlerden şu şu gelmiş  mi diye kontrol ettiriyorduk değil mi ? İşte bu kısımda da cookie gerçekten var mı yok mu diye kontrol ettirip cookie yi yazdırmamız bizim için fayda sağlayacaktır dostlarım :). Gelin o halde sözü daha fazla uzatmadan cookie varlığı nasıl anlaşılıyor onu inceleyelim

<?php
    setcookie("sitemiz","mfsoftware.net",time()+3600);  // cookie mizi oluşturduk
 
    if(count($_COOKIE)>0){
        // cookie varsa
        echo $_COOKIE['sitemiz'];
    }else{
       // cookie yoksa
       echo "Herhangi bir cookie bulunamadı";  
    }

   // Ekran Çıktısı : mfsoftware.net
?>

şeklinde kodumuzu yazıyoruz dostlarım :). Kodda süreç şu şekilde işliyor dostlarım

  1. Cookie oluşturuluyor (ismi "sitemiz", değeri "mfsoftware.net", zamanı "1 saat")
  2. Cookie kontrol ediliyor. Eğer varsa "mfsoftware.net" yazıyor, Yoksa "Herhangi bir cookie bulunamadı" yazıyor

Evet dostlarım cookie kullanımını, cookie silmeyi ve cookie varlığını anlamayı öğrenmiş bulunmaktayız. Yalnız önemli bir not var

NOT: Cookie lere dışarıdan erişilebileceği için özel bilgilerinizi cookie ile tutmak istiyorsanız şifreleyip tutmanız sizin için güvenli bir yol olabilir


Artık cookie lerin mantığını tamamiyle kavradığınızı düşünüyorum dostlarım :). Umarım faydalı olmuşumdur. Konu başlarda biraz karmaşık gibi görünebilir dostlarım. Tek yapmanız gereken "İstikrarlı ve azimli olmak, bolca pratik yapmak". Bu dediklerimi hayat felsefeniz yaparsanız başarı sizler için kaçınılmaz olur dostlarım :).

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)


Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıPHP de Session İşlemi
Sonraki YazıPHP de Filtreler
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz