- Katılım
- Ara 27, 2022
- Mesajlar
- 210
- Etkileşim
- 3,943
- Puan
- 0
- Yaş
- 37
- Konum
- Adana
- Web sitesi
- forumdas.com.tr
- F-D Coin
- 3,884
Ziyaretçi bilgisayarında, ziyaretçiyi takip edebilmek için bilgisayarında siteyle ilgili çerez dediğimiz küçük veriler saklanabilir. Böylece sitemize giren kullanıcı pazarlama, üyelik girişi sırasında kullanıcı adının tanınması veya otomatik sisteme giriş yapılması gibi olanaklar mümkün hale gelir.
Çerezler, yalnızca oluşturuldukları web sitesi geçerli olurlar. Çerezin geçersiz duruma geleceği bir tarih bilgisi tanımlanır. Böylece henüz sisteme giriş yapmamış kullanıcının sepet eklediği ürünlerin 1 hafta daha sepette tutulması, şifresiz girişin 1 ay süreyle kullanılmaya devam edilmesi gibi işlevler gerçekleştirilir. Oluşturulan her bir çerez, yalnızca kullanılan tarayıcıda geçerlidir.
Cookie’ler ziyaretçinin (diğer bir deyişle istemci) bilgisayarında saklanır. Öneğin Chrome ile “beni hatırla” seçeneği işaretlenerek doldurulmuş bir üye girişi formu ile Chrome tarayıcısı kullanıldığında şifre yazma zorunluluğu ortadan kalkacak ancak Firefox ile girildiğinde kullanıcının tanınma işlemi gerçekleştirilmeyecektir.
PHP’de cookie oluştururken dikkat edilmesi gereken şey, oluşturulan cookie’nin <html> etiketinden önce yerleştirilmesidir.
Genel kullanımı yukarıdaki gibi olan cookie’nin çerez adı ve değeri dışındaki parametreler yazılmasa da çalışmaktadır. Eğer bitiş zamanı yazılmazsa, tarayıcı kapatılana kadar geçerli olmaya devam edecektir.
Geçerlilik süresini ifade ederken mevcut zamanın üzerine istenildiği kadar saniye cinsinden değer eklenerek hesaplanır. Mevcut zamanı saniye cinsinden hesaplamak için time() fonksiyonu kullanılır.
Kullanıcı adı bilgisini $kullanici_adi isimli değişkenden alıp bunu 1 saat süre tutan cookie komutu aşağıdaki gibidir:
Kullanıcı adı bilgisini $kullanici_adi isimli değişkenden alıp bunu 1 ay süre tutan cookie komutu aşağıdaki gibidir:
Dikkat edilirse 1 saatin kaç saniye olduğu bilgisi, 60*60 ile bulunabiliyor. Dolayısıyla saat, gün, ay, yıl gibi birimlere çeviri yapmak için ilgili zaman dilimini çarpma işlemine sokmak yeterlidir.
Yukarıdaki tanımlanan cookie teknikakil.com/web-tasarim/ içinde ve altındaki tüm klasörlerde geçerli olur.
Eğer bir klasör için tanımlı cookie’nin tüm alan adı için geçerli olmasını istersen cookie’yi aşağıdaki şekilde yeniden tanımlayabiliriz:
Eğer cookie’nin tüm alt alan adlarında geçerli olması isteniyorsa;
Eğer cookie’nin yalnızca belirli bir alt alan adında, mesela yalnızca deneme.teknikakil.com üzerinde etkili olması isteniyorsa aşağıdaki cookie komutu kullanılır:
Bu durumda cookie’ye değer verme zorunluluğu yoktur. Silinmek istenen cookie değişkeninin (“kullanici_adi”) doğru yazılması yeterlidir.
Çerezler, yalnızca oluşturuldukları web sitesi geçerli olurlar. Çerezin geçersiz duruma geleceği bir tarih bilgisi tanımlanır. Böylece henüz sisteme giriş yapmamış kullanıcının sepet eklediği ürünlerin 1 hafta daha sepette tutulması, şifresiz girişin 1 ay süreyle kullanılmaya devam edilmesi gibi işlevler gerçekleştirilir. Oluşturulan her bir çerez, yalnızca kullanılan tarayıcıda geçerlidir.
Cookie’ler ziyaretçinin (diğer bir deyişle istemci) bilgisayarında saklanır. Öneğin Chrome ile “beni hatırla” seçeneği işaretlenerek doldurulmuş bir üye girişi formu ile Chrome tarayıcısı kullanıldığında şifre yazma zorunluluğu ortadan kalkacak ancak Firefox ile girildiğinde kullanıcının tanınma işlemi gerçekleştirilmeyecektir.
PHP’de cookie oluştururken dikkat edilmesi gereken şey, oluşturulan cookie’nin <html> etiketinden önce yerleştirilmesidir.
PHP’de Cookie Oluşturma
PHP’de çerez (cookie) oluşturabilmek için setcookie() fonksiyonu kullanılır. Fonksiyon sırasıyla çerez değişkeninin adı, değeri, son geçerlilik süresi, etkili olacağı alan olmak üzere parametreler alabilir.| 1 2 3 | <?php setcookie("çerez adı", "değer", "bitiş zamanı", "geçerlilik konumu", "alan adı"); ?> |
Geçerlilik süresini ifade ederken mevcut zamanın üzerine istenildiği kadar saniye cinsinden değer eklenerek hesaplanır. Mevcut zamanı saniye cinsinden hesaplamak için time() fonksiyonu kullanılır.
Kullanıcı adı bilgisini $kullanici_adi isimli değişkenden alıp bunu 1 saat süre tutan cookie komutu aşağıdaki gibidir:
| 1 2 3 | <?php setcookie("kullanici_adi", $kullanici_adi, time()+60*60 ); ?> |
| 1 2 3 | <?php setcookie("kullanici_adi", $kullanici_adi, time()+60*60*24*30 ); ?> |
- time() + 60: 60 saniye = 1 dakika
- time() + 60*60: 60 dakika = 1 saat
- time() + 60*60*24: 24 saat = 1 gün
- time() + 60*60*24*5: 5 gün
- time() + 60*60*24*7: 7 gün = 1 hafta
- time() + 60*60*24*30: 30 gün = 1 ay
- time() + 60*60*24*365: 365 gün = 1 yıl
| 1 2 3 | <?php setcookie("kullanici_adi", $kullanici_adi, time()+60*60*24*30, "/web-tasarim/"); ?> |
Eğer bir klasör için tanımlı cookie’nin tüm alan adı için geçerli olmasını istersen cookie’yi aşağıdaki şekilde yeniden tanımlayabiliriz:
| 1 2 3 | <?php setcookie("kullanici_adi", $kullanici_adi, time()+60*60*24*30, "/"); ?> |
| 1 2 3 | <?php setcookie("kullanici_adi", $kullanici_adi, time()+60*60*24*30, "/", "teknikakil.com"); ?> |
| 1 2 3 | <?php setcookie("kullanici_adi", $kullanici_adi, time()+60*60*24*30, "/", "deneme.teknikakil.com"); ?> |
Cookie’den Değer Okuma
PHP’de cookie’den değer okuyabilmek için $_COOKIE global değişkeni kullanılır.| 1 2 3 4 5 6 7 | <?php if (isset($_COOKIE['kullanici_adi'])) { echo $_COOKIE['kullanici_adi']; } ?> |
Cookie’yi Silme / Geçersiz Hale Getirme
PHP’de bir cookie’yi silmenin yolu, bu cookie’nin geçerlilik süresini değiştirmektir. Mevcut zamandan 1 saniye öncesinin bitiş süresi olarak ayarlanması, bu cookie’nin geçerliliği kaldırır.| 1 2 3 | <?php setcookie("kullanici_adi", "", time() - 1); ?> |
Cookie ile İlgili Önemli Noktalar
- Cookie’de şifre gibi kritik bilgiler tutulmaz. Cookie istemci, yani ziyaretçinin bilgisayarında saklandığı için ziyaretçinin bu veriyi değiştirme ihtimalinin bulunduğu her zaman göz önünde bulundurulmalıdır.
- Bir site, başka bir site için oluşturulan cookie’lere ulaşamaz.
- Geçerlilik süresi sonra ermiş bir cookie’ye ulaşılamaz.
- Cookie’ler tarayıcıya özgü olarak oluşur.
- Cookie ayarlandığı anda aynı sayfada gösterilmez. Bu bir sorun olarak görünse de gösterilmesi için sayfanın sayfanın yenilenmesi gerekir.
Türkiye'nin en güncel forumlardan olan forumdas.com.tr'de forumda aktif ve katkısı olabilecek kişilerden gönüllü katkıda sağlayabilecek kişiler aranmaktadır.