PHP cookie kullanımı, oluşturma, okuma ve silme

PHP Trend Makale

PHP cookie ile web site içerisinde kullanıcı deneyimini arttırmak ve web site kullanımını kolaylaştırmak amaçlanır ve kullanıcının bilgisayarında gerekli bilgilerin dosya şeklinde saklanması, okunması ve silinmesi şeklinde gerçekleşir. Cookie oluşturma, okuma ve silme işlemleri bu sürecin genel tanımlamalarıdır.

Kullanıcının siteyi tekrar ziyaret ettiğinde bazı işlemlerin tekrar uygulanmasına gerek duyulmamasını sağlayarak kullanıcı bilgilerinin hatırlanmasını sağlamak, kullanıcının siteyi kullanmasını kolaylaştırmak veya kullanıcıya kişiselleştirilmiş seçenekler sunmak için kullanılabilirler. Kullanıcı girişi, beni hatırla uygulaması, tema seçimi, çoklu dil desteği, e ticaret sepet uygulaması, uygun reklamların gösterimi gibi uygulamalar cookie kullanımına örnek verilebilir.

Ancak çerez kullanımı ile birlikte bazı güvenlik konularına da dikkat etmek gerekir. Örneğin bu makale de öğrendiğiniz Cookie verilerini incele kısmından değiştirilmesi mümkündür. Bu makaledeki örnekleri kullanacaksanız cookiye'ye kayıt eddiğiniz verilen çok önemli olmaması gerekir. Güvenlik önelimini verileri şifreleyerek sağlayabilirsiniz.

PHP Cookie Oluşturma, Okuma ve Silme

PHP setcookie kullanımı ile cookie oluşturma işlemi gerçekleştirilir. Alacağı parametreler aşağıdaki gibidir. Bu parametreler arasında sadece isim ve value kullanarak cookie oluşturma işlemi yapılabilir.

setcookie($name, $value, $time, $path, $domain, $secure, $just_http)
  • $name : Cookie’nin ismidir. Cookie bu isim üzerine çağırılır.
  • $value : Cookie değeridir.
  • $time : Tarayıcı üzerinde aktif olacağı saniye cinsinden tutulan cookie süresidir. Bir değer verilmez ise tarayıcı kapandığında cookie silinir, tarayıcı açık kaldığı süre içerisinde aktif olur. Zaman değeri, şu anki zaman + aktif olacağı süre şeklinde verilebilir. (örnek: time() + 60 //60 saniye)
  • $path : Sitede hangi dizin içerisinde çalışması gerektiğini belirtir. Bütün sitede aktif olunması istenir ise ” / ” değeri girilir.
  • $domain : Cookie’nin çalıştığı site içerisinde hangi alt domain üzerinde çalışacağını belirtir. Yazılmaz ise çalıştığı sitedeki ana domain baz alınır, tüm site üzerinde etkili olur.
  • $secure : True olarak aktif edilir ise sadece HTTPS bağlantılarda PHP çerez kullanımı gerçekleşir. Cookie güvenliği arttırma işlemi için kullanılır. Çerez bilgisi sadece https bağlantısı ile alınacağı belirtilir.
  • $just_http : True olarak kullanımı aktif edilir ise cookie sadece sunucu üzerinden erişilebilir olacaktır. Javascript ile tarayıcı üzerinde cookie düzenlenemeyecektir.

Time Cinsinden Zaman Türleri

time()+60:60 // 1 Dakika
time()+60*60 // 1 Saat
time()+60*60*24 // 1 Gün
time()+60*60*24*5 // 5 Gün
time()+60*60*24*7 // 7 Gün
time()+60*60*24*30 // 30 Gün
time()+60*60*24*365 // 365 Gün

PHP Cookie Silme

setcookie('cookie_name', '_', time() - 1); //′cookie_name′ isimli çerezi siler

PHP Cookie Okuma

echo $_COOKIE['cookie_name']  //’cookie_name’ isimli çerezin değerini al ve yazdır

Şimdiyse yukarıdaki parametrelerden kullanarak PHP setcookie kullanımı ile çerez oluşturalım.

PHP Cookie ile basit yorum uygulaması

Şimdi PHP cookie ile yapacağımız basit bir uygulama ile kullanıcı yorum yaptıktan sonra İsim ve Email adresi 30 gün boyunca tarayıcıda saklanacak ve kullanıcı siteye tekrar giridiğinde aynı bilgiler ile yorum yapabilecek.

index.php

<?php
// Eğer Çerez varsa 1 yoksa 0 döndürüyoruz.
if (empty(@$_COOKIE['name'] && $_COOKIE['email'])) {
  $cookieState = 0;
}
if (!empty(@$_COOKIE['name'] && $_COOKIE['email'])) {
  $cookieState = 1;
}

// Eğer yorum girilirse Çerezleri oluşturuyoruz.
if (@$_POST["setcookie"]) {
  // Eğer mevcutta Çerez yoksa oluşturulacak yoksa Çerez oluşturmadan devam edecek.
  if ($cookieState == 0) {
    setcookie("name", $_POST["name"], time()+60*5);
    setcookie("email", $_POST["email"], time()+60*5);
  }
  echo "Textarea değeri: " . $_POST["comment"];
}

// Çerez silme aksiyonunu alıyoruz.
if (@$_POST["deletecookie"]) {
  setcookie("name", "", time() - 1);
  setcookie("email", "", time() - 1);
  header("location:index.php");
}

?>
<?php if ($cookieState == 0): ?>
  <form action="" method="post">
    <table>
      <tr>
        <td><input type="text" name="name" placeholder="Adınız"></td>
      </tr>
      <tr>
        <td><input type="email" name="email" placeholder="Email Adresiniz"></td>
      </tr>
      <tr>
        <td><textarea name="comment" rows="8" cols="80" placeholder="Yorumunuz"></textarea></td>
      </tr>
      <tr>
        <td><input type="submit" name="setcookie" value="Gönder"> <input type="submit" name="deletecookie" value="Cookie Sil"></td>
      </tr>
    </table>
  </form>
<?php endif; ?>
<?php if ($cookieState == 1): ?>
  <form action="" method="post">
    <table>
      <tr>
        <td><input type="text" name="name" value="<?php echo $_COOKIE['name']; ?>" placeholder="Adınız" disabled></td>
      </tr>
      <tr>
        <td><input type="email" name="email" value="<?php echo $_COOKIE['email']; ?>" placeholder="Email Adresiniz" disabled></td>
      </tr>
      <tr>
        <td><textarea name="comment" rows="8" cols="80" placeholder="Yorumunuz"></textarea></td>
      </tr>
      <tr>
        <td><input type="submit" name="setcookie" value="Gönder"> <input type="submit" name="deletecookie" value="Cookie Sil"></td>
      </tr>
    </table>
  </form>
<?php endif; ?>
<?php if (empty($_COOKIE['name'])): ?>
  Cookie Yok
<?php endif; ?>
<?php if (!empty($_COOKIE['name'])): ?>
  <?php echo $_COOKIE['name']; ?><br>
  <?php echo $_COOKIE['email']; ?><br>
<?php endif; ?>

Beni dinlediğiniz için teşekkür ederim. Ayrıca PHP cURL kullanarak URL'den dosya indirmek adlı yazımız ilginizi çekebilir.


Yorumlar (0)

    Bu yazıya henüz bir yorum yapılmamış! İlk yorum yapan sen ol!