← Blog'a Don
PHP Dersleri

PHP Cookie (Çerezler): Kullanımı, Örnekleri ve En İyi Uygulamalar

5 ay once 5 ay once #104
PHP Cookie (Çerezler): Kullanımı, Örnekleri ve En İyi Uygulamalar

🍪 PHP Cookie (Çerezler): Kullanımı, Örnekleri ve En İyi Uygulamalar

Web siteleri, kullanıcıyla etkileşim kurarken bazı bilgileri tarayıcıda saklamak ister. İşte bu noktada devreye cookie (çerez) mekanizması girer.
PHP, çerezleri yönetmek için yerleşik fonksiyonlar sağlar — yani hem çerez oluşturabilir hem de okuyabilirsiniz.

Bu yazıda, PHP çerezlerinin ne olduğunu, nasıl kullanıldığını ve en iyi uygulamaları adım adım öğreneceksiniz. 🚀


🔹 1. PHP Cookie Nedir?

Cookie (çerez), bir web sitesinin kullanıcının tarayıcısında küçük veri parçaları saklamasına olanak tanır.
Bu veriler genellikle oturum (login), kullanıcı tercihleri, dil seçimi gibi bilgileri içerir.

Çerezler:

  • Tarayıcıda saklanır.

  • İstemci tarafında bulunur.

  • Sunucu tarafından gönderilir ve isteklerde otomatik olarak iletilir.


🔸 2. PHP ile Cookie Oluşturma

PHP’de çerez oluşturmak için setcookie() fonksiyonu kullanılır.
Söz dizimi şu şekildedir:

setcookie(name, value, expire, path, domain, secure, httponly);

Temel bir örnek:

<?php setcookie("kullanici", "Metin", time() + 3600); // 1 saatlik çerez ?>

Bu kod, kullanici adında bir çerez oluşturur ve değerini "Metin" olarak belirler.
1 saat sonra (3600 saniye) çerez otomatik olarak silinir.


🔹 3. PHP Cookie Okuma

Oluşturulan çerezlere $_COOKIE süper global dizisiyle erişilir.

<?php if (isset($_COOKIE["kullanici"])) { echo "Merhaba, " . $_COOKIE["kullanici"]; } else { echo "Çerez bulunamadı!"; } ?>

Çıktı:

Merhaba, Metin

🔸 4. PHP Cookie Silme

Bir çerezi silmek için, aynı isimde bir çerezi geçmiş bir zaman damgasıyla yeniden tanımlamanız gerekir:

<?php setcookie("kullanici", "", time() - 3600); // Silmek için geçmiş zaman echo "Çerez silindi!"; ?>

🔹 5. Gelişmiş Cookie Ayarları

setcookie() fonksiyonu ile güvenlik ve kapsam açısından daha ayrıntılı ayarlar yapılabilir.

<?php setcookie( "tema", "koyu", [ "expires" => time() + (86400 * 30), // 30 gün "path" => "/", "domain" => "ornek.com", "secure" => true, // HTTPS bağlantılarında gönder "httponly" => true, // JavaScript erişemez (XSS koruması) "samesite" => "Strict" // Cross-site request koruması ] ); ?>

Bu yapı, PHP 7.3+ sürümlerinde desteklenir ve çerezleri daha güvenli hale getirir. 🔐


🔸 6. PHP’de Cookie ile Oturum Yönetimi

Cookie’ler, kullanıcı giriş sistemlerinde sıkça kullanılır.
Örneğin, bir kullanıcı “Beni Hatırla” seçeneğini işaretlediğinde bilgiler cookie olarak saklanır.

Örnek:

<?php if ($_POST['kullanici_adi'] == "metin" && $_POST['sifre'] == "1234") { setcookie("giris", "1", time() + 3600); // 1 saat geçerli echo "Giriş başarılı!"; } ?>
<?php if (isset($_COOKIE["giris"])) { echo "Hoş geldin!"; } else { echo "Lütfen giriş yapın."; } ?>

🔹 7. Cookie ile Session Arasındaki Fark

ÖzellikCookieSession
Saklandığı yerKullanıcının tarayıcısındaSunucu belleğinde
GüvenlikDaha düşükDaha yüksek
Boyut sınırıYaklaşık 4 KBSunucu belleğiyle sınırlı
Kullanım alanıBasit veriler, tercih bilgileriGiriş yönetimi, gizli veriler

💡 Kural: Hassas bilgiler cookie yerine session içinde saklanmalıdır.


🔸 8. PHP Cookie Kullanırken Dikkat Edilmesi Gerekenler

  1. Çerezleri sayfa çıktısından önce gönderin.
    setcookie() fonksiyonu header ile çalışır, bu yüzden echo veya HTML çıktısından önce çağrılmalıdır.

  2. Gizlilik yasalarına dikkat edin.
    Avrupa Birliği (GDPR) ve Türkiye KVKK gibi düzenlemeler, çerez kullanımında kullanıcı onayı ister.

  3. Hassas bilgileri saklamayın.
    Şifre, token, kişisel bilgi gibi veriler şifrelenmeden çerezlerde tutulmamalıdır.

  4. Süresi dolmuş çerezleri temizleyin.
    Uygulamanızda gereksiz çerez kalabalığını önleyin.


🔹 9. Pratik Örnek: Tema Seçimi Uygulaması

<?php if (isset($_POST['tema'])) { setcookie("tema", $_POST['tema'], time() + 86400 * 30); header("Location: index.php"); } ?> <form method="post"> <select name="tema"> <option value="acik">Açık</option> <option value="koyu">Koyu</option> </select> <button type="submit">Kaydet</button> </form> <?php if (isset($_COOKIE['tema'])) { echo "Seçili tema: " . $_COOKIE['tema']; } ?>

🧠 10. Özet

İşlemFonksiyonAçıklama
Çerez oluşturmasetcookie()Yeni çerez ekler
Çerez okuma$_COOKIEMevcut çereze erişim sağlar
Çerez silmesetcookie()Geçmiş bir süreyle yeniden tanımlar
Güvenlikhttponly, secureXSS ve HTTPS güvenliği sağlar

🏁 Sonuç

PHP çerezleri, kullanıcı deneyimini kişiselleştirmek ve tercihleri hatırlamak için güçlü bir araçtır.
Ancak güvenlik ve gizlilik konularına dikkat edilmezse risk oluşturabilir.

Doğru yapılandırılmış çerezlerle siteniz daha kullanıcı dostu ve profesyonel görünecektir. 🍪💻