TR Kodlama Forumlar PHP’de Cookie’ler

  • Bu konu boş.
0 yanıt dizini görüntüleniyor
  • Yazar
    Yazılar
    • #6657
      oralunal
      Ziyaretçi

      PHP ile nasıl çerez oluşturulur? Nasıl silinir? Nasıl kullanılır? Problemleri nelerdir?
      Çerezler internet kullanıcılarının bilgisayarlarına web siteleri tarafından bırakılan bir nevi kimlik işlevi gören küçük dosyalardır. Web siteleri bu kimliklerle sizleri tanır.

      Mesela projenizde “Beni Hatırla” seçeneği sunmak istiyorsunuz; bu işlemde sizin yardımınıza çerezler yetişir. Tabii ki farklı yollarla bu işlemi oturum(session) ve veritabanı ikilisiylede halledebilirsiniz ama çerezleri kullanmak kadar basit bir yöntem varken buna neden ihtiyaç duyarsınız ki?

      Çerez Oluşturma
      PHP ile çerezlerimizi setcookie() fonksiyonu ile kuruyoruz. Hemen bir örnekle açıklayalım:
      setcookie($ad, $deger, $bitis, $dizin, $domain, $guvenli);  

      • $ad – çerezin adı. Örn: “kullaniciAdi”
      • $deger – çerezin değeri. Örn: “sagoral”
      • $bitis – UNIX zamandamgası şeklinde olmalı ve çerezin geçerlilik süresini belirdir. Örnek: time()+3600 Yani bir saat
      • $dizin – çerezin geçerli olacağı dizini belirtirsiniz.
        Mesela eğer dizin “/” olarak ayarlanmışsa bütün sitede geçerli olacaktır bu çerez fakat “/forum/” şeklinde ayarlansaydı çerez sitenizin trkodlama.com/forum/ adresinde geçerli olacaktı.
        Bu bölümü doldurmak isteğe bağlıdır. “/” değeri varsayılandır.
      • $domain – çerezin geçerli olacağı alanları belirlersiniz.
        Örneğin “.trkodlama.com” olarak belirlerseniz çerez altdomain.trkodlama.com, deneme.trkodlama.com adreslerinde de geçerli olur.
        Bir diğer şekli ise “www.trkodlama.com” şeklinde belirlerseniz sadece ana alan adı ve alt klasörlerde çalışır çerez. http://www.trkodlama.com/forum/, http://www.trkodlama.com/makaleler/ gibi..
      • $guvenli – boolean tipidir. Sitenizin güvenli(https) sunucu olup olmadığını bildirir. Varsayılan ayarı false’dur

      Şimdi örnek bir çerez oluşturalım:
      [code=php:36u3oxmp]/* setcookie() fonksiyonunu bu şekilde kullanmak ile
      **  setcookie(“kullaniciAdi”, “sagoral”, time()+3600, “/”, “.trkodlama.com”, false);
      **  bu şekilde(alt satırdaki) kullanmak arasında hiçbir fark yoktur. */
      setcookie(“kullaniciAdi”, “sagoral”, time()+3600);
      ?>
      kullaniciAdi isimli bir çerez oluşturduk ve değerini desagoral yaptık. Bu çerez time()+3600 dediğimiz için bir saat süreyle geçerli olacaktır.
      Uyarı: setcookie() fonksiyonu her zaman HTML içerik gönderilmeden önce kullanılmalıdır. Aksi taktirde “Warning: Cannot modify header information…” şeklinde bir uyarıyla karşılaşırsınız. Gerekli çözüm linkte yazıyor.

      Bir Yıllık Çerez Oluşturalım
      Şimdiki çerezimizi bir yıllık oluşturalım bakalım time() değerini nasıl değiştiriyoruz?
      [code=php:36u3oxmp]setcookie(“kullaniciAdi”, “sagoral”, time()+(60*60*24*365)); 
      Bu şekilde çerezin bitiş süresi tam bir yıl sonrası oldu.

      Çerezi Okuma
      Şimdi çerez değerini çekelim. “kullaniciAdi” adlı bir çerez oluşturduk ve buna “sagoral” değerini atadık. Şimdi sayfalarımızda bu değeri nasıl çağırabiliriz ona bakalım:
      [code=php:36u3oxmp]// Oldukça kolaydır
      echo $_COOKIE[“kullaniciAdi”];
      ?>
      Şu anda “sagoral” adını ekrana yazdırmış olduk.

      Çerezi Silme
      Sıradaki işlemimiz ise değerini “sagoral” olarak atadığımız çerezi silme:
      [code=php:36u3oxmp]setcookie(“kullaniciAdi”, “”, time()-3600); 
      Burada dikkat etmemiz gereken nokta şu, eğer çerezi eklerken bitiş süresini time()+3600 olarak belirlediysek silerkende time()-3600 olarak yazmamız gerekiyor. Aksi taktirde problem yaşayabilirsiniz.

      Kolay gelsin,[code=php:36u3oxmp]setcookie($ad, $deger, $bitis, $dizin, $domain, $guvenli);  

      • $ad – çerezin adı. Örn: “kullaniciAdi”
      • $deger – çerezin değeri. Örn: “sagoral”
      • $bitis – UNIX zamandamgası şeklinde olmalı ve çerezin geçerlilik süresini belirdir. Örnek: time()+3600 Yani bir saat
      • $dizin – çerezin geçerli olacağı dizini belirtirsiniz.
        Mesela eğer dizin “/” olarak ayarlanmışsa bütün sitede geçerli olacaktır bu çerez fakat “/forum/” şeklinde ayarlansaydı çerez sitenizin trkodlama.com/forum/ adresinde geçerli olacaktı.
        Bu bölümü doldurmak isteğe bağlıdır. “/” değeri varsayılandır.
      • $domain – çerezin geçerli olacağı alanları belirlersiniz.
        Örneğin “.trkodlama.com” olarak belirlerseniz çerez altdomain.trkodlama.com, deneme.trkodlama.com adreslerinde de geçerli olur.
        Bir diğer şekli ise “www.trkodlama.com” şeklinde belirlerseniz sadece ana alan adı ve alt klasörlerde çalışır çerez. http://www.trkodlama.com/forum/, http://www.trkodlama.com/makaleler/ gibi..
      • $guvenli – boolean tipidir. Sitenizin güvenli(https) sunucu olup olmadığını bildirir. Varsayılan ayarı false’dur

      Şimdi örnek bir çerez oluşturalım:
      /* setcookie() fonksiyonunu bu şekilde kullanmak ile
      **  setcookie(“kullaniciAdi”, “sagoral”, time()+3600, “/”, “.trkodlama.com”, false);
      **  bu şekilde(alt satırdaki) kullanmak arasında hiçbir fark yoktur. */
      setcookie(“kullaniciAdi”, “sagoral”, time()+3600);
      ?>
      kullaniciAdi isimli bir çerez oluşturduk ve değerini desagoral yaptık. Bu çerez time()+3600 dediğimiz için bir saat süreyle geçerli olacaktır.
      Uyarı: setcookie() fonksiyonu her zaman HTML içerik gönderilmeden önce kullanılmalıdır. Aksi taktirde “Warning: Cannot modify header information…” şeklinde bir uyarıyla karşılaşırsınız. Gerekli çözüm linkte yazıyor.

      Bir Yıllık Çerez Oluşturalım
      Şimdiki çerezimizi bir yıllık oluşturalım bakalım time() değerini nasıl değiştiriyoruz?
      [code=php:36u3oxmp]setcookie(“kullaniciAdi”, “sagoral”, time()+(60*60*24*365)); 
      Bu şekilde çerezin bitiş süresi tam bir yıl sonrası oldu.

      Çerezi Okuma
      Şimdi çerez değerini çekelim. “kullaniciAdi” adlı bir çerez oluşturduk ve buna “sagoral” değerini atadık. Şimdi sayfalarımızda bu değeri nasıl çağırabiliriz ona bakalım:
      [code=php:36u3oxmp]// Oldukça kolaydır
      echo $_COOKIE[“kullaniciAdi”];
      ?>
      Şu anda “sagoral” adını ekrana yazdırmış olduk.

      Çerezi Silme
      Sıradaki işlemimiz ise değerini “sagoral” olarak atadığımız çerezi silme:
      [code=php:36u3oxmp]setcookie(“kullaniciAdi”, “”, time()-3600); 
      Burada dikkat etmemiz gereken nokta şu, eğer çerezi eklerken bitiş süresini time()+3600 olarak belirlediysek silerkende time()-3600 olarak yazmamız gerekiyor. Aksi taktirde problem yaşayabilirsiniz.

      Kolay gelsin,[code=php:36u3oxmp]/* setcookie() fonksiyonunu bu şekilde kullanmak ile
      **  setcookie(“kullaniciAdi”, “sagoral”, time()+3600, “/”, “.trkodlama.com”, false);
      **  bu şekilde(alt satırdaki) kullanmak arasında hiçbir fark yoktur. */
      setcookie(“kullaniciAdi”, “sagoral”, time()+3600);
      ?>
      kullaniciAdi isimli bir çerez oluşturduk ve değerini desagoral yaptık. Bu çerez time()+3600 dediğimiz için bir saat süreyle geçerli olacaktır.
      Uyarı: setcookie() fonksiyonu her zaman HTML içerik gönderilmeden önce kullanılmalıdır. Aksi taktirde “Warning: Cannot modify header information…” şeklinde bir uyarıyla karşılaşırsınız. Gerekli çözüm linkte yazıyor.

      Bir Yıllık Çerez Oluşturalım
      Şimdiki çerezimizi bir yıllık oluşturalım bakalım time() değerini nasıl değiştiriyoruz?
      setcookie(“kullaniciAdi”, “sagoral”, time()+(60*60*24*365)); 
      Bu şekilde çerezin bitiş süresi tam bir yıl sonrası oldu.

      Çerezi Okuma
      Şimdi çerez değerini çekelim. “kullaniciAdi” adlı bir çerez oluşturduk ve buna “sagoral” değerini atadık. Şimdi sayfalarımızda bu değeri nasıl çağırabiliriz ona bakalım:
      [code=php:36u3oxmp]// Oldukça kolaydır
      echo $_COOKIE[“kullaniciAdi”];
      ?>
      Şu anda “sagoral” adını ekrana yazdırmış olduk.

      Çerezi Silme
      Sıradaki işlemimiz ise değerini “sagoral” olarak atadığımız çerezi silme:
      [code=php:36u3oxmp]setcookie(“kullaniciAdi”, “”, time()-3600); 
      Burada dikkat etmemiz gereken nokta şu, eğer çerezi eklerken bitiş süresini time()+3600 olarak belirlediysek silerkende time()-3600 olarak yazmamız gerekiyor. Aksi taktirde problem yaşayabilirsiniz.

      Kolay gelsin,[code=php:36u3oxmp]setcookie(“kullaniciAdi”, “sagoral”, time()+(60*60*24*365)); 
      Bu şekilde çerezin bitiş süresi tam bir yıl sonrası oldu.

      Çerezi Okuma
      Şimdi çerez değerini çekelim. “kullaniciAdi” adlı bir çerez oluşturduk ve buna “sagoral” değerini atadık. Şimdi sayfalarımızda bu değeri nasıl çağırabiliriz ona bakalım:
      // Oldukça kolaydır
      echo $_COOKIE[“kullaniciAdi”];
      ?>
      Şu anda “sagoral” adını ekrana yazdırmış olduk.

      Çerezi Silme
      Sıradaki işlemimiz ise değerini “sagoral” olarak atadığımız çerezi silme:
      [code=php:36u3oxmp]setcookie(“kullaniciAdi”, “”, time()-3600); 
      Burada dikkat etmemiz gereken nokta şu, eğer çerezi eklerken bitiş süresini time()+3600 olarak belirlediysek silerkende time()-3600 olarak yazmamız gerekiyor. Aksi taktirde problem yaşayabilirsiniz.

      Kolay gelsin,[code=php:36u3oxmp]// Oldukça kolaydır
      echo $_COOKIE[“kullaniciAdi”];
      ?>
      Şu anda “sagoral” adını ekrana yazdırmış olduk.

      Çerezi Silme
      Sıradaki işlemimiz ise değerini “sagoral” olarak atadığımız çerezi silme:
      setcookie(“kullaniciAdi”, “”, time()-3600); 
      Burada dikkat etmemiz gereken nokta şu, eğer çerezi eklerken bitiş süresini time()+3600 olarak belirlediysek silerkende time()-3600 olarak yazmamız gerekiyor. Aksi taktirde problem yaşayabilirsiniz.

      Kolay gelsin,[code=php:36u3oxmp]setcookie(“kullaniciAdi”, “”, time()-3600); 
      Burada dikkat etmemiz gereken nokta şu, eğer çerezi eklerken bitiş süresini time()+3600 olarak belirlediysek silerkende time()-3600 olarak yazmamız gerekiyor. Aksi taktirde problem yaşayabilirsiniz.

      Kolay gelsin,

0 yanıt dizini görüntüleniyor
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.