Cookie'ler
Cookie'ler, PHP'de kullanıcı tarayıcısında saklanan küçük veri parçalarıdır ve web uygulamalarında kullanıcı durumunu yönetmek için kritik öneme sahiptir. HTTP protokolü stateless olduğundan, her istek sunucuya bağımsız olarak iletilir; cookie'ler bu sınırlamayı aşarak kullanıcıya özgü verileri saklamayı sağlar. Cookie'ler oturum yönetimi, kullanıcı tercihleri, alışveriş sepeti verileri ve uygulama içi takip gibi senaryolarda yaygın olarak kullanılır.
PHP'de cookie oluşturmak için setcookie() fonksiyonu kullanılır, mevcut cookie'leri okumak için ise $_COOKIE süper globali devreye girer. Gelişmiş PHP projelerinde cookie yönetimi, veri yapıları, algoritmalar ve OOP prensipleriyle birleştirilerek güvenli ve sürdürülebilir kod yazmayı gerektirir. Bu eğitimde okuyucu, cookie oluşturma, okuma, güncelleme ve silme işlemlerini hem prosedürel hem de nesne yönelimli yaklaşımlarla öğrenecektir. Ayrıca hata yönetimi, performans optimizasyonu ve güvenlik önlemleri konusunda ileri seviyede bilgiler sunulacaktır.
Okuyucular bu ders sonunda, cookie'leri gerçek dünya projelerinde uygulayabilecek, güvenli ve ölçeklenebilir bir PHP mimarisi tasarlayabilecek seviyeye ulaşacaktır.
Temel Örnek
php<?php
$cookie_name = "kullanici";
$cookie_value = "AhmetYilmaz";
// Cookie'yi 7 gün boyunca geçerli olacak şekilde oluştur
setcookie($cookie_name, $cookie_value, time() + (7 * 24 * 60 * 60), "/");
// Cookie mevcut mu kontrol et
if(isset($_COOKIE[$cookie_name])) {
echo "Hoşgeldiniz, " . $_COOKIE[$cookie_name] . "! Cookie ile tanımlandınız.";
} else {
echo "Cookie bulunamadı. Yeni cookie oluşturuluyor.";
}
?>
Bu temel örnekte, cookie adı ve değeri tanımlanmış ve setcookie() fonksiyonu ile tarayıcıya gönderilmiştir. time() + (7 * 24 * 60 * 60) ifadesi cookie'nin 7 gün boyunca geçerli olmasını sağlar. "/" parametresi, cookie'nin tüm domain genelinde erişilebilir olmasını garantiler. isset() fonksiyonu kullanılarak cookie'nin varlığı kontrol edilir; böylece olmayan bir cookie okunmaya çalışıldığında oluşabilecek hatalar engellenir. $_COOKIE süper globali, tarayıcıdan gelen cookie verilerini okumak için kullanılır. Bu yapı, PHP’de cookie yönetiminin temel kavramlarını, güvenli okuma ve koşullu mantık kullanımını göstermektedir.
Pratik Örnek
php<?php
class KullaniciCookie {
private string $cookieAdi = "kullanici";
private int $sure = 604800; // 7 gün
public function __construct(private string $kullaniciAdi) {}
public function olustur(): void {
if(!isset($_COOKIE[$this->cookieAdi])) {
setcookie($this->cookieAdi, $this->kullaniciAdi, time() + $this->sure, "/");
}
}
public function oku(): ?string {
return $_COOKIE[$this->cookieAdi] ?? null;
}
public function sil(): void {
setcookie($this->cookieAdi, "", time() - 3600, "/");
unset($_COOKIE[$this->cookieAdi]);
}
public function selamla(): void {
$kullanici = $this->oku();
if($kullanici) {
echo "Hoşgeldiniz, $kullanici! Cookie ile tanımlandınız.";
} else {
echo "Cookie bulunamadı.";
}
}
}
$oturum = new KullaniciCookie("AhmetYilmaz");
$oturum->olustur();
$oturum->selamla();
?>
Bu örnek, cookie yönetimini nesne yönelimli yaklaşım ile göstermektedir. KullaniciCookie sınıfı, cookie oluşturma, okuma, silme ve selamlama işlemlerini metodlar aracılığıyla yönetir. Null Coalescing operatörü (??), cookie mevcut değilse hata oluşmasını engeller. Bu yapı, kodun yeniden kullanılabilirliğini ve bakımını kolaylaştırır. Güvenlik ve performans açısından cookie yönetimini merkezi bir sınıfta toplamak, büyük projelerde hataları ve güvenlik açıklarını azaltır.
Cookie'ler ile çalışırken en iyi uygulamalar şunlardır: anlamlı ve açıklayıcı isimlendirme, uygun süre ayarı, güvenli veri yönetimi, Secure ve HttpOnly bayraklarının kullanımı. Büyük veri saklamaktan kaçınmak performansı korur. Yaygın hatalar arasında mevcut olmayan cookie'lere erişmek, bellek sızıntıları ve verimsiz algoritmalar bulunur. Debugging için print_r($_COOKIE) ve loglama teknikleri kullanılabilir. Cookie'leri oturum yönetimi ile entegre etmek, güvenliği ve uygulama verimliliğini artırır.
📊 Referans Tablosu
PHP Element/Concept | Description | Usage Example |
---|---|---|
setcookie() | Cookie oluşturur ve tarayıcıya gönderir | setcookie("kullanici", "AhmetYilmaz", time() + 3600, "/"); |
$_COOKIE | Tarayıcıdan gelen cookie verilerini tutar | echo $_COOKIE["kullanici"]; |
unset() | $_COOKIE dizisinden cookie’yi siler | unset($_COOKIE["kullanici"]); |
Cookie Süresi | Cookie’nin geçerlilik süresini belirler | time() + (7*24*60*60) |
OOP Sınıfı | Cookie yönetimini sınıf içerisinde kapsüller | $oturum = new KullaniciCookie("AhmetYilmaz"); $oturum->olustur(); |
Cookie'ler PHP'de kullanıcı yönetimi ve veri saklama açısından kritik bir konudur. Hem prosedürel hem de nesne yönelimli yaklaşımlarla uygulanabilir. Sonraki adım olarak oturum yönetimi, güvenli veri saklama ve kullanıcı doğrulama konularını öğrenmek önerilir. Cookie’leri güvenli ve optimize bir şekilde projelerde kullanmak, uygulama güvenliği, ölçeklenebilirliği ve bakımını iyileştirir.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek