Konular

$_cookıe

Cookie'ler web server tarafından üretilen bilgi parçalarıdır ve client bilgisayarakaydedilirler. Cookie'ler html kod içine gömülüdür ve server-client arasında gidipgelirler. Client'ınız sizin web browser'ınızdır (örneğin netscape, lynx). Server iseweb sayfasının bulunduğu makinenin web serveri.(örneğin cclub. Ktu. Edu. Tr ın 80 no'luportta çalışan web server'i apache)cookie'ler kişiye özel web sayfası yapmak, sayaç yapmak ve browse yapılırken veri kaydetmek,istatistik tutmak gibi işlerde kullanılır
$_COOKIECookie'ler ve PHP

        PHP ile cookie'ler kullanmak oldukça kolaydır. SetCookie fonksiyonu kullanılarak cookie setlenir. Cookie'ler HTTP header'in bir parçasıdır, bu nedenle SetCookie fonksiyonu, browser'a henüz hiçbir çıktı gönderilmeden çağrılmalıdır. Bu diğer header fonksiyonları için de geçerli olan kuraldır. Client'tan size herhangi bir cookie gönderildiği zaman otomatik olarak bir PHP değişkeni olarak dönecektir size. PHP header'ı alıp parçalar (parse eder),
cookie isimlerini açar ve bu isimleri değişkenlere atar. Mesela SetCookie("isim","baris") şeklinde bir cookie kullanılırsa PHP otomatik olarak $isim diye bir değişken oluşturup değerini "baris" yapacaktir.

       Herhangi bir siteye üye olduğumuzda ve ya msn adresimizi girerken isim ve parolamız saysinde kişisel bilgilerimizi giriyoruz Cookie de böyle bir kişiselleştirme,tanımlama olayıdır.

        Kullanıcı tanımlamalarda kullanılır. Tanımlama bilgisi Web sunucusu tarafından tarayıcınız aracılığı ile bilgisayarınıza gönderilen bilgilerdir.Bu bilgiler Takip etme , Yetkilendirme ve Özel bilgiler şeklinde olabilir. Cookie  kullanıcıların bilgisayarlarına gönderilen içerisinde bir değişken değerine sahip küçük dosyalardır.  Aynı bilgisayardan web tarayıcısı yolu ile istek yapıldığında, bilgisayara yeni değeri ile gönderilir.Cookieler ile sitelerde kişisellik sağlanır .

       Cookie'nin amacı; sizin o siteyi yeniden ziyaret ettiğinizi web sunucuya bildirmekten ibarettir.

Firefox
        Bilgileri bir txt dosyasında saklar: C:Documents and SettingstesparaApplication DataMozillaFirefoxProfilesj8hthvho.defaultcoo kie.txt

İE
       
Tanımlanan bilgilerini ayrı ayrı dosyalarda saklar: C:Documents and SettingstesparaLocal SettingsTemporary Internet Files

İki çeşit COOKİE vardır bir Geçici COOKİE (Temporary cookie) ve Kalıcı COOKİE (Persistent Cookie)

  • Geçici COOKİE ler uzun veri takibinde kullanılmazlar
  • Kalıcı COOKİE ler uzun veri takibi için kullanılırlar
  • Tarayıcıdan başka onlara erişen bir program olmadığı için Geçici COOKİE ler daha güvenlidir
  • Kalıcı COOKİE lerin içeriği 3. kişiler tarafından görülebilir
  • COOKİE boyutları IE için 3904 byte ,Firefox için 3136 byte dır
  • Bir COOKİE üç kısımdan oluşur COOKİE Adı , COOKİE değeri ve TTL (Yaşam süresi ). Tarayıcıya COOKİE göndermek için setcookie komutu kullanılır. Bir COOKİE tanımlamak için syntax (söz dizimi aşağıdaki gibidir)
setcookie("COOKİE adı", "COOKİE değeri", TTL, "Yol", "Domain", Güvenlik,httponly);
 
  • COOKİE Adı
    Dize değeri olmalı ve sayı ile başlayamaz
  • COOKİE Değeri
    COOKİE adı ile tanımlanan değişkene yüklenecek değerdir
  • TTL
    COOKİE nin yaşam süresini belirler Bu süre COOKİE nin oluşturma zamanından başlar ve bu bir tam sayı değeri olup saniye cinsinden hesaplanır. time()+60*60*24*30  şeklindeki bir zaman 60 saniye 60 dakika 24 saat 30 gün demektir
  • Yol
    COOKİE nin hangi dizinde depolanacağını belirler. "/" şeklindeki değer varsayılan konuma kayıt yapılacağını gösterir
  • Domain
    COOKİE nin hangi alan adında konumlandırılacağını belirler
  • Güvenlik
    COOKİE nin güvenli HTTPS protokolü üzerinden aktarılacağını belirler. ve alacağı değerler booleondur(evet yada hayır manasına gelen TRUE veya FALSE) varsayılan değer FALSE dir
  • httponly
    Alacağı değerler booleondur.Eğer bu değer TRUE olursa COOKİE ye erişim sadece HTTP protokolu üzerinden olur ve java gibi diğer script dilleri ile değerleri okunamaz.

Aşağıdaki örnekte birinci komut Geçici COOKİE ve ikinci komut Kalıcı COOKİE dir
 
setcookie( "rumuz", "merkez efendi" );

setcookie( "isim", "Muslihiddin Musa Efendi", time()+3600 );  
 
Cookie Nasıl Oluşturulur?
setcookie() fonksiyonu ile cookieleri yaratabiliriz.
Note: setcookie() fonksiyonu tagından önce kullanılmalıdır.

Sözdizimi: 
setcookie(değişken ismi, değer, ömür, yol, domain);

setcookie("kullanici", $isim, time()+36000);
 
Server üzerinden 10 saat ömrü olan bir cookie aldınız bir cookie aldınız.

Cookie değeri nasıl silinir?

Tabiki cookie yi silebilmemiz için önce varlığını kontrol etmemiz gerekir. Eğer cookie tanımlanmış ise. Php de cookie yi değişken çağırır gibi çağırabilirsiniz.

Cookielere sadece cookie değişkeninin ismini yazarak yada $_COOKIE["kullanici"] şeklinde ulaşabilirsiniz.

Cookie nin aktif olup olmadığını, kullanıcının bilgisayarına daha önce den cookie alıp almadığını isset() fonksiyonu yardımı sınayabiriz. Bir örnek verecek olursak.

Görüldüğü gibi cookie yi silerkende tanımlerkende setcookie() fonksiyonunu kullanıyoruz. Silerken yaptığımız tek şey cookie ömrünü şimdiki zamandan geriye almak. Böylece cookie nin geçerliliğini ortadan kaldırıyoruz.

Örnek:
Aşağıdaki örnek eğer kullanıcıya kullanici cookiesi gönderilmiş ise Hoşledin Ahmet gibi bir mesaj yazacaktır. Fakat daha önce gönderilmemiş yada ömrü bittiyse Siteye giriş yapmadınız! yazacaktır.

if (isset($_COOKIE["kullanici"]))

echo "Hoşgeldin " . $_COOKIE["kullanici"] . "!";

else echo "Siteye giriş yapmadınız!"

Şimdi de Bu cookie istemci bilgisayırından nasıl silinir bunu görelim.

 
if (isset($_COOKIE["kullanici"])) {

     setcookie ($kullanici, $isim, time()-99999);

     echo "Bilgisayarınızdan cookie silinmiştir.";
}

else  {
    echo "Cookie Mevcut Değil!";

} 

Gönderilmiş olan COOKİE dizi (array) şeklinde okutulur. ve diziyi tanımlamak (diziden değer okumak) için $_COOKIE komutu kullanılır
 
$_COOKIE["rumuz"];

$_COOKIE["isim"];  
 
Kalıcı COOKİE ler için fazladan yaşama süresi (TTL) eklenir. bu süre COOKİE nin gönderilme anından başlar. Bunun için time() fonksiyonu kullanılır

COOKİE leri silmek için aynı diziye yüklenmiş değere üstüne TTL için - değerli zaman yükleyerek COOKİE nin silinmesi sağlanır
 
setcookie("rumuz","",time()-1);

setcookie("isim","",time()-1)
Kaynak Uğur Kahraman, Burak  Kaya,  Murat Saka, Soner Yıldırım.
Yorumunuzu Ekleyin

PHP Data Objects (PDO) Nedir?
Yükleniyor...