PHP

PHP’de Çerez (Cookie) – 10

Türkçesi çerez olarak bilinen cookie, ziyaret edilen siteler tarafından tarayıcılar (browser : internet explorer, google chrome, mozilla firefox, safar, vb.) üzerinde ömrü bitene kadar tekrar tekrar kullanılmak üzere bıraktığı izlerdir.

Mesela, Facebook sitesine giriş yaparken mail ve şifre alanının hemen altında yer alan “Oturumumu sürekli açık tut” kutucuğu bir cookie -çerez-işlemini gerçekleştirmektedir. Bu kutucuğu işaretleyerek Facebook hesabınıza giriş yaparsanız, tarayıcınızı kapatıp açsanız bile –cookie’nin ömrü bitmediği veya siz tarayıcınızın çerez geçmişini temizlemediğiniz sürece– bir sonra ki girişlerinizde mail ve şifre girmeden otomatik olarak giriş yaptığınızı göreceksiniz. İşte bu ve buna benzer işlemleri gerçekleştirmenin adıdır cookie.

Cookie’yi Nasıl Oluşturulur?

PHP’de cookie oluşturmak için setcookie() fonksiyonu kullanıyoruz. setcookie() fonksiyonunu daha önce araştırdıysanız internet sitelerinde 3 parametre aldığı bilgisini görmüşsünüzdür. Bunun nedeni 3 parametreli kullanımın genelde bizlere yetmesidir. Ama gerçek olan 3 değil 6 parametredir.

Sözdizimi

setcookie(name, value, expire, path, domain, secure)
setcookie(çerez adı, çerez değeri, çerez ömrü , çerez yolu, domain, güvenli)

name -çerez adı- : Çerez adını belirtir. Bu parametreyi kullanmak zorunludur.

value -çerez değeri- : Çerezin değerini belirtir. Bu parametreyi kullanmak zorunludur.

expire -çerez ömrü- : Çerezin ömrünü belirtir. Bu parametreyi isteğe bağlı olarak kullanabilirsiniz. Örneğin; time()+3600*24*30 ifadesi 30 günü ifade etmektedir. Bu parametreyi boş bırakırsanız varsayılan olarak tarayıcı kapandığında çerezin ömrüde sona erer.

path -çerez yolu- : Çerezin etki alanını belirtir. Bu parametreyi isteğe bağlı olarak kullanabilirsiniz.

domain -alan adı- : Çerezin etki alan adını belirtir. Bu parametreyi isteğe bağlı olarak kullanabilirsiniz. Boş bırakırsanız varsayılan olarak adres çubuğundaki alan adına göre çalışır.

secure -güvenli- : Çerezin sadece güvenli bir bağlantı (HTTPS) üzerinden aktarılması gerektiğini belirtmek için kullanılır. Parametre alanına ‘true’ veya ‘false’ değerleri yazılarak kullanılır. Varsayılan değer olan ‘false’ kullanıldığında güvenli bağlantı aramaz. ‘True’ olarak belirtildiği takdirde, çerez sadece güvenli bağlantı mevcutsa çalışır.

Cookie Oluşturma

<?php

setcookie("selamver", "Selamun Aleyküm");
// selamver adında bir cookie oluşturduk ve değer olarak Selamun Aleyküm tanımladık.
// 2 parametreli kullandığımız için çerezimizin ömrü tarayıcı kapanınca sona erecek.

setcookie("siteadi", "KOD5", time() + (60*60*24));
// siteadi adında bir cookie oluşturduk ve değer olarak KOD5 tanımladık.
// 3 parametreli kullandık ve çerezimize 24 saat ömür belirttik.
// Buradaki ömürü belirtirken saniye bazlı değer kullanıyoruz. 1 gün 86400 saniyedir. Biz bunu anlaşılır olması için 60*60*24 şeklinde belirttik.

?>

Cookie Silme

Oluşturduğunuz bir çerezi silmek için cookie oluşturur gibi 3 parametreli olarak setcookie() fonksiyonunu kullanacağız. Burada silme işlemi için yapmamız gereken çerez ömrünü geçmişe dair bir
değer vermektir.

<?php

setcookie("selamver", "Selamun Aleyküm", time() -3600);
// bu şekilde 1 saat önceye ait bir çerez oluşturur gibi mevcut çerezi silmiş olduk

?>

Cookie Kullanımı

Oluşturduğumuz, tanımladığımız çerezler global $_COOKIE dizisi olarak saklanmaktadır. Yukarıda oluşturduğumuz selamver adlı çerezi aşağıdaki gibi kullanabilirsiniz.

<?php

echo $_COOKIE["selamver"];
// bu şekilde selamver çerezinin değerini ekrana yazdırmış olduk.
// ekran çıktısı : Selamun Aleyküm

?>

Bir çerezi bir değişkene atayarak kullanmak isteyebilirsiniz. Bu tür durumda da aşağıdaki örnekteki gibi kullanabilirsiniz.

<?php

$degiskenadi = $_COOKIE["selamver"];
// selamver çerezinin değeri olan Selamun Aleyküm 'ü $degiskenadi 'na atamış olduk.

?>

Cookie Değerini Değiştirmek

Oluşturduğunuz bir çerezin değerini değiştirmek istediğinizde aynı isimle yeni bir çerez oluşturup değerini farklı biçimde tanımladığınızda cookie değerini değiştirmiş olursunuz.

<?php

setcookie("siteadresi", "kod5.net");
setcookie("siteadresi", "kod5.net");

echo $_COOKIE["siteadres"];
// ekran çıktısı : kod5.net

?>

Cookie’nin Varlığını Kontrol Etmek

Bir çerezin varlığını kontrol etmek için isset fonksiyonunu kullanıyoruz. Eğer çerez var ise 1 olarak yok ise ‘false’ olarak bir değer geriye döner.

<?php

setcookie("adsoyad", "Fatih ÇAL");

echo isset($_COOKIE["adsoyad"]);

// ekran çıktısı : 1

?>
<?php

setcookie("adsoyad", "Fatih ÇAL");

echo isset($_COOKIE["yas"]);

// ekran çıktısı : (false olduğu için ekrana bir değer çıkartmaz)

?>

Yorum Ekle

Yorum Yap