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 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)
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
setcookie('cookie_name', '_', time() - 1); //′cookie_name′ isimli çerezi siler
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.
Ş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)