Bu yazımızda cookie(çerez) oluşturma, okuma ve silme işlemlerini göstereceğiz. Cookielerle ilgili bilgileri önceki yazılarımızdan okuyabilirsiniz.

Cookie oluşturmak için setcookie() yöntemini kullanılır.Öncelikle bu yöntemin tanımını yaparak başlayalım.

setcookie() : setcookie() metodu belirtilecek olan değerler doğrultusunda cookie(çerez) oluşturmak veya silmek için kullanılır. 3 adet parametre alır. Bu parametreler ;

  • 1- Cookie adı
  • 2- Cookie değeri
  • 3- Cookie yaşam süresi

Cookie yaşam süresi değerini vermek zorunda değiliz. Eğer bu değer verilmezse cookie silinmez, tarayıcı kapansa bile bilgiler kayıt altında tutulmaya devam edilir, bu da güvenlik açısından büyük bir zaaftır.

Cookie okumak için print_r($_COOKIE) metodu kullanılır.

Örnek 1 :

<?php  
setcookie("KullaniciAdi", "Uğur");
      setcookie("KullaniciSoyadi", "Kabak");
      setcookie("EgitimAdi", "Php Egitim Seti");

      echo "<pre>";
      print_r($_COOKIE); //okuma
      echo "</pre>";
?>

Yukarıdaki örnekte 3 adet cookie oluşturduk ve bu cookielere değer atadık.

  • 1- KullaniciAdi isminde cookie oluşturup cookiye Uğur değerini verdik.
  • 2- KullaniciSoyadi isminde cookie oluşturup cookiye Kabak değerini verdik.
  • 3- EgitimAdi isminde cookie oluşturup cookiye Php Eğitim Seti değerini verdik.

Değerleri okumak için print_r($_COOKIE) metodunu kullandık. 3 adet cookie oluşturduğumuz için ekran çıktısında dizi halinde yan yana yazdıracaktı, bunu karışıklık yaşamamak için html’in <pre> tag’larını kullanıp alt alta yazdırdık.

Örnek 2 :

<?php  
$sure = time() +3600;
setcookie("KullaniciAdi", "Uğur");
setcookie("KullaniciSoyadi", "Kabak");
setcookie("EgitimAdi", "Php Egitim Seti");
?>

Yukarıdaki örnekte 3 adet cookie oluşturduk ve bu cookielere değer atadık.

  • 1- KullaniciAdi isminde cookie oluşturup cookiye Uğur değerini verdik.
  • 2- KullaniciSoyadi isminde cookie oluşturup cookiye Kabak değerini verdik.
  • 3- EgitimAdi isminde cookie oluşturup cookiye Php Eğitim Seti değerini verdik.

Değerlerin nasıl okunacağını gösterdiğimiz için bu örnekte yapmadım. Zatan tarayıcınızın ayarlar kısmından Gizlilik ve Güvenlik bölümünün altındaki Çerezler ve diğer site verileri ‘ne girdikten sonra Tüm çerezleri ve site verilerini göster seçeneğine tıklarsanız o anki aktif çerezlerin hepsini görebilirsiniz.

Bu örneğimizde cookie oluşturmaya ek olarak sure isminde bir değişken tanımladık ve 1 saat boyunca aktif kalsın anlamına gelen time() + 3600 değerini verdik. Zaman saniye biçiminde olduğu için süreyi saniye cinsinden belirtiyoruz. Yani bu örnekte tarayıcı hatta bilgisayar kapansa bile cookie 1 saat boyunca aktif kalır, 1 saatin sonunda ise silinir.

codernsoft-security

Yukarıdaki 2 örnekte cookie oluşturmayı ve okumayı gösterdik. Peki cookie silme işlemi nasıl yapılıyor ? Cookielerde silme işlemi yapmak için ayrı bir fonksiyon veya metod yoktur ama silme işlemi yapılabiliyor. Süreye verdiğimiz değeri 0’a eşitler veya negatif değer verirsek cookie silinmiş oluyor. Bu aslında biraz işin hilesi gibi gözüküyor ama cookie silmek için kullanılan yöntem budur.Şimdi biraz gelişmiş bir örnekle gösterelim.

Örnek 3 :

<?php  
$sure = time() + 86400; 
setcookie("KullaniciAdi", "Uğur",0);    
setcookie("KullaniciSoyadi", "Kabak",0);  
setcookie("EgitimAdi", "Php Egitim Seti",0);

if(isset($_COOKIE["KullaniciAdi"])){
  echo "Kullanıcı Adı :" . $_COOKIE["KullaniciAdi"] . "<br>";
}
if(isset($_COOKIE["KullaniciSoyadi"])){
  echo "Kullanıcı Soyadı :" . $_COOKIE["KullaniciSoyadi"] . "<br>";
}
if(isset($_COOKIE["EgitimAdi"])){
  echo "Eğitim Adı :" . $_COOKIE["EgitimAdi"] ;
}

?>

Yukarıdaki örnekte 3 adet cookie oluşturduk ve bu cookielere değer atadık.

  • 1- KullaniciAdi isminde cookie oluşturup cookiye Uğur değerini verdik.
  • 2- KullaniciSoyadi isminde cookie oluşturup cookiye Kabak değerini verdik.
  • 3- EgitimAdi isminde cookie oluşturup cookiye Php Eğitim Seti değerini verdik.

Bu örnekte cookie oluştururken sure isminde değişken oluşturup 1 gün boyunca aktif kalması için time() + 86400 değerini verdik. Ama aynı zamanda cookieleri silmek istediğimiz için de yaşam süresi parametresine 0 değerini verdik yani silmiş olduk. Peki oluşturduk ve hemen sildik, bu işlemin doğruluğundan nasıl emin olacağız ? Bunun için de if blokları içinde koşullarımızı belirttik. Koşullarımızda eğer cookieler oluşturulduysa ekrana yazdır komutunu verdik. Yani cookielerin oluşturulduğundan da emin olduk..

Örnek 4 :

<?php  
$sure = time() - 60;
setcookie("KullaniciAdi", "Uğur",$sure);    //-60 olduğu için silinmiş oluyor

?>

Bu örneğimizde KullaniciAdi isminde bir cookie oluşturup Uğur değerini atadık. Süre isminde bir değişken oluşturp -60 değerini verdik. Cookie’nin yaşam süresine de süre değişkenini atadık. Bu sayede yaşam süresi -60 saniye oldu, yani cookie silinmiş oldu.