PHP Cookie(Çerezler)

Girilen sitelerin tarayıcı(browser) üzerinde bıraktığı izler vardır. Bu izlere cookie(çerez) ismi verilir. Çerezler temel olarak site tekrar ziyaret edildiğinde bazı şeylerin hatırlanmasını sağlar. Örneğin giriş gerektiren bir sitede kullanıcıya ait kullanıcı adı ve şifre cookieler sayesinde tarayıcıda tutulur ve kullanıcı tekrar giriş yapacağı zaman kullanıcı adı ve şifresini yeniden giriş yapmak zorunda kalmaz. Siteye direk olarak giriş yapabilir.

Cookilerin isteğe bağlı olarak birçok yerde kullanılabilir ve zamandan tasarruf sağlar.

Cookie Oluşturma

PHP‘de cookie oluşturmak için setcookie() fonksiyonu kullanılır.Fonksiyonda tarayıcının saklamasını istediğimiz değerin anahtarı ve içeriğini belirttiğimiz gibi saklanacak değerin ne kadar süreyle tarayıcıda saklanacağını da belirtebiliriz.

setcookie(“lifeacode”,”merhaba dünya”);

Yukarıda “lifeacode” adında bir cookie oluşturduk ve değerini “merhaba dünya” olarak belirledik.3. parametreyi girmediğimiz için bu cookie tarayıcı kapatıldığı zaman silinecek. Buradan da anlaşılacağı üzere bir sonraki parametre cookienin ne kadar süreyle saklanacağı ile ilgilidir.

Aşağıda 3. parametreyi kullanarak bir cookie oluşturalım.

setcookie(“lifeacode”,”merhaba dünya”, time() + 3600);

Yukarıda şu anki zamana 1 saat eklemiş olduk. Yani kullanıcının bilgileri 1 saat boyunca tarayıcıda saklanacak. 3600 yazmamızın sebebi ise cookie kullanımında zaman saniye cinsinden hafızada tutulur. 1 saat de 3600 saniye yapacağı için şu anki zamana 3600 saniye eklenir.

Cookie Silme

Oluşturduğumuz bir çerezi silmek için yine setcookie() fonksiyonunu kullanıyoruz. Tanımladığımız 3. parametreyi hatırlarsak time() + 3600 kullanmıştık. Silme işleminde ise bu işlemin tam tersini time() – 3600 kullanacağız.

setcookie(“lifeacode”,”merhaba dünya”, time() - 3600);

Yukarıda time() – 3600 kullandık. Şu anki zamandan 3600 saniye geçmiş bir zaman belirtmiş olduk. Bu kullanımda çerezin tarihi dolmuş kabul edilip hemen siliniyor.

Cookie Dizisi Kullanımı

$_COOKIE dizisi kullanılarak çerez kullanımı yapılır. Bu dizi sayfaya gönderilen çerezlere göre otomatik oluşur. Oluşturduğumuz bir çereze aşağıdaki kodu kullanarak ulaşırız.

Örnek verecek olursak yukarıda “lifeacode” adında bir çerez oluşturduk. Bu çereze aşağıdaki kodla ulaşırız.

echo $_COOKIE[‘lifeacode’];

Yukarıdaki kod kullanıldığı zaman ekranda “merhaba dünya” yazar.

Cookie Değerini Değiştirmek

Cookielerin değerini değiştirmek için de setcookie() fonksiyonu kullanılır. Setcookie() fonksiyonu ile bir çerez tanımlanır ve yine setcookie() fonksiyonu ile içerisindeki değer yeniden yazılır.

setcookie(“lifeacode”,”merhaba dünya”);

setcookie(“lifeacode”,”merhaba PHP”);

Yukarıda “lifeacode” isminde bir çerez oluşturduk ve çerezin değerini “merhaba dünya” olarak belirledik. Ardından değeri “merhaba PHP” olarak değiştirdik ve bunun için sadece setcookie() fonksiyonunu kullandık.

Tanımlı Cookie Kontrolü

Bir çerezin tanımlı olup olmadığını anlamak için isset() fonksiyonu kullanılır. Genel olarak if ifadesi ile kullanılır.

echo isset($_COOKIE[‘lifeacode’]);

Yukarıda “lifeacode” adında bir çerez olup olmadığını kontrol ettik ve TRUE değeri döndü. Ekranda 1 değeri görüntülenir. Eğer tanımlamadığımız bir çerezi kontrol ettirseydik ekrana FALSE değeri dönerdi.