Php Cookies (Çerez) kullanımı
Cookie yani çerezler web sitelerine girdiğiniz bilgilerin tarayıcı tarafından bir dosya içerisinde şifrelenerek tutulmasını sağlar. Böylece aynı web sitesine tekrar girdiğiniz zaman bu dosya içerisinde ki Cookie bilgileri kullanılır. PHP Cookie (Çerez) değişkenleri kullanıcı giriş işlemleri dışında farklı alanlarda da kullanılabilir. Genellikle daha hızlı ve güvenli olması için Sessionlar kullanılır. Cookie nin Türkçesi Çerezler ve ya Kurabiyeler olarak duyabilirsiniz.
Session ve Cookie ler arasında ki fark Session ların server tarafında tutulması Cookie lerin kullanıcı tarafında tutulmasıdır. Bazen cookie dosyaları çalınarak kullanıcı girişi yapılabiliyor bu yüzden cookie lerin daha çok sepetlere kullanıcı girişi yapmadan ürün ekleme vb. yerlerde ağırlıklı olarak kullanılması yerinde olur.
Çerez tanımlamak için ad ve değer girilmesi zorunludur. Opsiyonel olarak son kullanım süresi, dizini, alan adı, güvenli seçenekleri bulunur. Kısaca açıklamak gerekirse:
Ad (Name): Zorunlu. Tanımlanacak çerezin adı.
Değer (Value): Zorunlu. Tanımlanacak çerezin değeri.
Son kulanım tarihi (Expire): Opsiyonel. Hazırlanan çerezin hangi tarihe kadar geçerli olacağını belirler. Tanımlanmamışsa tarayıcı kapanana kadar geçerli olur.
Dizin (Path): Opsiyonel. “/” ise bütün dizinlerde, “/kullanici/” ise kullanici dizini ve alt dizinlerinde geçerli olacaktır. Belirtilmemişse bulunduğu dizin olarak kabul edilir.
Alan adı (Domain): Opsiyonel. Hangi alt alanlarda geçerli olacağı belirlenir. Bütün “korayoksuztepe.com” adresinde geçerli olması isteniyorsa “.korayoksuztepe.com”, sadece “yazilim.korayoksuztepe.com”da geçerli olup diğerleri tarafından erişilememesi isteniyorsa “yazilim.korayoksuztepe.com” olarak tanımlanmalıdır.
Güvenli (Secure): Opsiyonel. Çereze erişim sadece https ile olmasını istiyorsanız true olarak belirtmeniz gerekir. Varsayılanı false olarak gelir.
Sadece http (Httponly): Opsiyonel. True olduğunda, çerezin sadece http protokolüyle erişilmesini sağlar. Javascript gibi diller aracılığıyla erişilmeye çalışıldığında görülemeyeceğinden buradan XSS’in de önüne geçilmiş oluyor.
Cookie oluşturma
PHPde cookie oluşturma işini bir setcookie() fonksiyonu ile yapıyoruz. Fonksiyonda tarayıcıya gönderilecek ve saklanacak olan değerin anahtarını ve içeriğini belirttiğimiz gibi bir de ne kadar süre tarayıcıda saklanacağınıda belirtiyoruz.
setcookie("çerezim", "selam dünya");
Yukarıdaki örnekte çerezim adında bir cookie oluşturduk ve değerinide selam dünya yaptık. Ve 3. parametre olarak hiç bir şey girmediğimiz için varsayılan olarak tarayıcı kapatıldığında çerez silinecek.
Eğer çerezin bizim istediğimiz bir gelecek tarihte silinmesini istiyorsakta 3. parametreyi devreye sokacağız. İşte bunun içinde bir örnek:
setcookie("çerezim", "selam dünya", time() + (60*60*24));
Şimdi 3. olarak girdiğimiz time() + (60*60*24) bu parametre şu anki zamana saniye cinsinden 60*60*24 tam olarak 24 saat yani 1 gün eklemiş olduk.
Bu oluşturduğumuz çerezin son kullanma tarihi şuandan itibaren + 24 saat sonra demek oluyor. 1 gün sonrasında bu çerez siteye girildiğinde gönderilmiyor olacak.
Cookie silme
Oluşturduğumuz bir çerezi silmek için yine normal bir çerez tanımlarmış gibi setcookie() fonksiyonunu kullanıyoruz. Tek fark 3. son kullanma tarihi paramteremize geçmiş bir zaman giriyoruz. Bu sayede çerezin tarihi dolmuş varsayılıp hemen siliniyor. Örnek olarak bu çereze time() – 3600 diyerek 1 saat öncesini göstereceğiz ve çerez silinmiş olacak:
setcookie("çerezim", "selam dünya", time() - 3600);
Cookie kullanımı
Çerez kullanımı $_COOKIE dizisi üzerinden yapılır. Bu dizi otomatik olarak o sayfaya gönderilen çerezlere göre oluşur. Yukarıdaki oluşturduğumuz çereze ulaşmak için aşağıdaki kodu kullanırız, ki bu koddan ne kadar basit ve anlaşılır olduğu belli oluyor:
echo $_COOKIE["çerezim"];
Ekranda yukarıdaki örneğin devamı olarak gösterdiğimiz bu örnekten ötürü selam dünya yazar.
Cookie değerini değiştirmek
Çerezleri oluşturmakta ve silmekte olduğu gibi değerini değiştirmekte de setcookie() fonksiyonunu kullanıyoruz. Ve oluşturmakta olduğu gibi değerini değiştirmekte aynıdır. Sadece çerez adına önceden tanımladığımız adı yazmamız yeterli. Eğer çerez yoksa oluşturulur varsa değeri değiştirilir.
setcookie("çerezim", "selam dünya"); setcookie("çerezim", "merhaba dünya"); echo $_COOKIE["çerezim"];
Ekranda merhaba dünya yazar.
Cookie tanımlanmış mı diye bakmak
Tüm değişkenlerin varlığını kontrol edecek olan isset() fonksiyonu ile bir çerezin tanımlanıp tanımlanmadığını bulabiliriz. Kullanımı if ifadesi ile olacak olan bu fonksiyonun bu kullanımını henüz bu ifadeyi anlatmadığımız için örnek göstermiyorum.
echo isset($_COOKIE["olmayan"]);
Ekranda bir şey yazmaz, FALSE değeri döner. Çünkü böyle bir çerez tanımlamadık. Tanımlanmış bir çerez olsaydı ekranda olumlu manada 1 yazardı.
<< Önceki Yazı
Sonraki Yazı >>