PHP'de COOKIE İŞLEMLERİ

+ Yorum Gönder
Webmaster ve HTML-PHP-ASP-JAVA Bölümünden PHP'de COOKIE İŞLEMLERİ ile ilgili Kısaca Bilgi
  1. 1
    ejder123
    Usta Üye
    Reklam

    PHP'de COOKIE İŞLEMLERİ

    Reklam



    PHP'de COOKIE İŞLEMLERİ

    Forum Alev
    Şu ana kadar formlar için bilgi alma mekanizması olarak browserin adres satırından bilgi aldık ve kaydettiğimiz dosyalardan bilgi alık.Şu anda cookie lerden bilgi almaya başlayacağız.Bu cookielerin "çerez" ne işe yaradıklarını bu siteden bir örnek yardımıyla açıklayacağız.
    Mesela bu kullanıcı kayıt sistemi yaptınız ve kullanıcıları bir veritabanında topladınız.Bu kullanıcılar login olduklarıda sadece bir tek sayfaya girecekler.Oda login olunan sayfaya.Bu işi daha da ilerletmek için yani kullanıcının değişik sayfalarda da gezinmesini isteyebiliriz.Tabii bu işi hidden gizli HTML takılarıyla yapmamız mümkün ama bu güvenlik açısından iyi bir yöntem değildir.
    Cookie'lerin çalışma sitillerini kısaca açıklamak gerekirse; php programını çalıştıran bir kullanıcının bilgisayarına bir adet txt uzantılı metin dosyası atılır.Bu dosyayı gerektiğinde sadece bu cookie yi atan program okuyabilir.
    Cookie'lerin yaşama şanslarınıda programcı belirleyebilir.İsterse bir ay boyunca cookie kişisel bilgisayardan silinmez.İsterse 10 dakika sonra cookie browser tarafından silinir.Cookie'ler Windows işletim sisteminde Windows dizininin altında bulunan cookie klasöründe toplanırlar."C:\Window\Cookie\" Bu cookieleri nerelerde kullanabiliriz diye sorarsak?
    Yukarda da söylediğimiz gibi kullanıcı kayıt scriptlerinde, anketlerde yapmış olduğumuz seçenekleri bir ziyaretçinin sadece bir seçeneğe oy verebilmelerini sağlama, sayaçlarda siteyi ziyaret eden kişilerin sürekli olarak browserin yenile "Refresh, F5" butonunu tıklayıp sayacımızın artmasını engelleyebiliriz.Cookie'lerin atılması şöyle olur:

    setcookie("bilgisayara giden cookienin başlığı","cookie değeri", time() , "/" );

    Cooikie'ler görüldüğü gibi setcookie komutu ile gönderiliyor.Bu komutu biraz açarsak; bu komutun içerisine ilk değer cookie nin adını teşkil etmektedir.İkinci değer ise buraya genellikle bir değişken konur cookie nin değeri girilir.Üçüncü kısmında ise cookie nin bilgisayarda kalacağı süreyi belirliyoruz.Burada time komutuyla birlikte sayı değeri gireriz.Bildiğiniz gibi time() komutu saniye cinsinden zamanı verir.Şimdi bir cookie denemesi yapalım.

    setcookie("Aspetonline", "PHP", time()+600, "/");

    Burada biz Aspetonline adında vir cookie yi PHP değeriyle 600 saniye uyarınca yani 10 dakika boyunca web sayfamızın kök dizinine işe yarayacak bir cookie attık.Bu cookie yi mesela http://localhost/cookie.php adında bir dosyadan attık.Bu http://localhost adresinden itibaren kulllanılır.Eğer bir üst klasörden itibaren kullanılmak isteniyorsa son değişkene "/klasör_adi" gibi klasör isimlerini koyabiliriz.

    setcookie("CGI", "anket", time()+3600*24, "/anket");

    Burada da CGI adında bir cookie gönderdik.Değerini anket yaptık.Zaman kısıtlamasını time komutuna önce 3600 yani 1 saat yaptık.Sonrada çarpı 24 yaparak cookie nin süresini 24 saat olarak belirledik.Daha sonrasında da anket klasöründe geçerli kıldık.
    Peki bu cookie leri nasıl okuruz diye sorulduğunda şu cevabı veririz. $HTTP_COOKI_VARS[cookieninadi] değişkeni ile cookieleri okutmamız mümkün.Bir örnek verelim.Yukardaki örnekleri eğer çalıştırdıysanız şu komutu çalıştırın.


    print $HTTP_COOKIE_VARS[Aspetonline];

    Bu komutu çalıştırdığınızda karşınıza PHP yazısı çıkacaktır.Yine dizi değişkenine anket yazarsanız bu sefer karşınıza anket yazısı çıkacaktır.Ama şu ayrıma dikkat etmeniz gerekir.Cookie'yi hangi server adıyla gönderdiyseniz o server adıyla okutabilirsinzi.Yani kişisel bilgisayarınızda bu cookie leri çalıştırdığınızda 3 değişik adres vardır.Bunlar http://localhost http://127.0.0.1 ve http://adınız Bu adınız değişkenlidir.Bunu Denetim masasında bulunan ağ simgesindeki tanımlamadaki bilgisayarın adı girer ve istendiğinde değiştirilebilir.Bu adreslerden herhangibiriyle atılan cookie diğer adreslerle okunamaz.Zaten cookie lerin içerisini atığınızda şöyle bir yazıyla karşılaşırsınız:

    Aspetonline
    PHP
    mehmet/
    128
    182249344
    29446161
    1995417792
    29433923
    *


    Burada ilk satır cookie nin adını, 2. satır cookie nin değerini, 3. satırda cookie nin hangi klasörde geçerli olacağını gösterir.Diğer satırlar da ise cookie nin geçerlilik zamanını, atılış zamanını saniye cinsinden yazar.Bunlar sizi ilgilendirmez.Şimdi bir örnek vererek bu bahsi kapayalım.

    <? //login.php
    if($kullanici_adi=="admin" && $sifre=="sifre" ){
    setcookie("kullanici", "admin", time()+3600, "/")
    print "Şu anda şifreli alandasınız.";
    }
    else{
    print "Kullanıcı adı veya şifreniz yanlış";
    }
    ?>
    <? // diğer şifreli sayfalarda kullanılabilecek kod
    if(!$HTTP_COOKIE_VARS[kullanici]=="admin"){
    print "Siz şuanda login değilsiniz.";
    }
    else{
    //Buraya login olan kullanıcıların görmesini istediğiniz sayfayı giriniz.
    }
    ?>


    Cookie'ler de gerekli olan güvenlik önlermlerini sıralamamız gerekirse: Eğer yukardaki gibi kullanıcı kaydı yaptığınız sitelerde cookie nin süresini kısıtlı tutmalısınız.Siteden çıkış yapan bir bölüm eklemelisiniz.Buda cookie yi silme anlamına gelir.Cookie gerçi program tarafından silinmez ama öldürülebilir.Yani içerisine ilk atanan değeri değiştirerek öldürebiliriz.Bunuda cookie nin içerisinde bulunan 2. değeri mesela boş bırakabilirisniz.

    setcookie("kullanici", "...", time()+3600, "/")

    Burada benim kullandığım yöntemi kullanarak cookie nin içerisine 3 nokta koyabilirisniz.Cookielerde bir güvenlik önlemide cookie lein içerisine asla ve asla kullanıcı bilgileri koymamanızdır.Bunun yerine uzun karakterli tercihen 32 karakterli rasgele şifre kullanarak bu şifreyi sınatmanızdır.Bu rasgele şifre yapmanın yöntemi de:

    $resgele = md5 (uniqid (""));
    $random = substr ("$rasgele", 0, 32);


    Burada ki gibi random değişkeni her seferinde 32 karakterli bir şifre üretecektir.Bu tür şifre kullanmamızın nedeni: Mesela bir kullanıcı internet kafeye giderek sizin sitenize girdi ve login oldu.Sonrada çıkış butonunu tıklamadan kafeden ayrıldı.Bunun üzerine bir başka kullanıcı bu bilgisayara girip C:\Windows\cookie\ klasöründen güvenlik önlemi alınmadan gönderilen cookie ye bakar ve içerisinde kullanıcı adı ve şifrenin girildiğini görür ve sitenize bu kişide giriş yapar.Bunun için asla cookie lerin içerisine kullanıcı bilgilerini girmeyiniz.



  2. Alev
    Özel Üye

    PHP'de COOKIE İŞLEMLERİ Makalesine henüz yorum yazılmamış. ilk yorumu siz yapın


Sponsor Bağlantılar
+ Yorum Gönder
php cookie işlemleri,  cookie işlemleri php,  php de cookie ne işe yarar
5 üzerinden 5.00 | Toplam : 1 kişi