PHP Oturumu & Örneklerle PHP Çerezleri

İçindekiler:

Anonim

Çerez nedir?

Çerez, web sunucusunun istemci bilgisayarda depoladığı maksimum 4KB boyutunda küçük bir dosyadır.

Bir çerez ayarlandıktan sonra, takip eden tüm sayfa istekleri çerez adını ve değerini döndürür.

Bir tanımlama bilgisi, yalnızca gönderildiği alandan okunabilir. Örneğin, www.guru99.com etki alanını kullanan bir tanımlama bilgisi seti, care.guru99.com etki alanından okunamaz.

İnternetteki web sitelerinin çoğu, reklamcılık gibi diğer alanlardan öğeler görüntüler. Bu unsurlara hizmet veren alanlar da kendi çerezlerini ayarlayabilir. Bunlar üçüncü taraf tanımlama bilgileri olarak bilinir.

Bir kullanıcı tarafından oluşturulan bir çerez yalnızca onlar tarafından görülebilir. Diğer kullanıcılar değerini göremez.

Çoğu web tarayıcısının çerezleri, üçüncü taraf çerezlerini veya her ikisini de devre dışı bırakma seçenekleri vardır.

Durum böyleyse PHP, URL'ye çerez belirtecini ileterek yanıt verir.

Aşağıda gösterilen şema, çerezlerin nasıl çalıştığını göstermektedir.

Buraya,

1) Bir kullanıcı, çerezleri depolayan bir sayfa ister

2) Sunucu, kullanıcının bilgisayarındaki çerezi ayarlar

3) Kullanıcıdan gelen diğer sayfa istekleri, çerez adını ve değerini döndürecektir.

Bu eğitimde öğreneceksiniz-

  • Çerezler neden ve ne zaman kullanılmalı?
  • Çerezler Oluşturmak
  • Çerez değerini alma
  • Çerezleri sil
  • Oturum nedir?
  • Oturumlar neden ve ne zaman kullanılmalı?
  • Oturum Oluşturma
  • Oturum Değişkenlerini Yok Etme

Çerezler neden ve ne zaman kullanılmalı?

  • Http, vatansız bir protokoldür; tanımlama bilgileri, kullanıcının bilgisayarında depolanan küçük dosyaları kullanarak uygulamanın durumunu izlememize olanak tanır.

    Çerezlerin saklanma yolu tarayıcıya bağlıdır.

    Internet Explorer bunları genellikle Temporal Internet Files klasöründe depolar.

  • Kullanıcı deneyiminin kişiselleştirilmesi - bu, kullanıcıların tercihlerini seçmelerine izin verilerek elde edilir.

    Takip edilmesi istenen sayfa, çerezlerde ayarlanan tercihlere göre kişiselleştirilir.

  • Bir kullanıcı tarafından ziyaret edilen sayfaların takibi

Çerezler Oluşturmak

Şimdi bir çerez oluşturmak için kullanılan temel sözdizimine bakalım.

İŞTE,

  • Php “setcookie”, tanımlama bilgisini oluşturmak için kullanılan PHP işlevidir.
  • "Cookie_name", sunucunun $ _COOKIE dizi değişkeninden değerini alırken kullanacağı tanımlama bilgisinin adıdır. Zorunlu.
  • "Cookie_value", çerezin değeridir ve zorunludur
  • "[Expiry_time]" isteğe bağlıdır; 1 saat gibi tanımlama bilgisi için sona erme süresini ayarlamak için kullanılabilir. Zaman, PHP time () işlevleri artı veya eksi 0'dan büyük birkaç saniye, yani 1 saat için time () + 3600 kullanılarak ayarlanır.
  • "[Çerez_yolu]" isteğe bağlıdır; sunucuda tanımlama bilgisi yolunu ayarlamak için kullanılabilir. Eğik çizgi "/", tanımlama bilgisinin tüm etki alanında kullanılabilir hale getirileceği anlamına gelir. Alt dizinler, çerez erişimini alt etki alanına sınırlar.
  • "[Alan]" isteğe bağlıdır, çerez erişim hiyerarşisini tanımlamak için kullanılabilir, yani www.cookiedomain.com tüm alan anlamına gelirken, www.sub.cookiedomain.com çerez erişimini www.sub.cookiedomain.com ve alt alanı alanlar. Toplam karakter sayısı 253 karakteri geçmediği sürece bir alt etki alanının alt etki alanına sahip olmanın mümkün olduğunu unutmayın.
  • "[Güvenli]" isteğe bağlıdır, varsayılan yanlıştır. Tanımlama bilgisinin true olarak ayarlanmışsa https yoluyla mı yoksa false olarak ayarlanmışsa http üzerinden mi gönderileceğini belirlemek için kullanılır.
  • "[Httponly]" isteğe bağlıdır. True olarak ayarlanırsa, yalnızca istemci tarafı kodlama dilleri, yani JavaScript bunlara erişemez.

Not: php set tanımlama bilgisi işlevi, HTML açılış etiketinden önce çalıştırılmalıdır.

Şimdi çerez kullanan bir örneğe bakalım.

Kullanıcı adını on saniye sonra süresi dolan bir çerezde saklamamıza izin veren temel bir program oluşturacağız.

Aşağıdaki kod, yukarıdaki "cookies.php" örneğinin uygulamasını göstermektedir.

Çıktı:

the cookie has been set for 60 seconds

Çerez değerini alma

Aşağıdaki kodla "cookies_read.php" adlı başka bir dosya oluşturun.

Çıktı:

Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )

Not: $ _COOKIE bir PHP yerleşik süper global değişkendir.

Ayarlanan tüm çerezlerin adlarını ve değerlerini içerir.

Değerlerin sayısı

$ _COOKIE dizisi php.ini'de ayarlanan bellek boyutuna bağlıdır.

Varsayılan değer 1GB'dir.

Uygulamamızı test ediyoruz.

PHP dosyalarınızı phptus klasörüne kaydettiğinizi varsayalım.

  • Adım 1 - web tarayıcınızı açın ve http: //localhost/phptuts/cookies_read.php URL'sini girin.

Not: Yalnızca boş bir dizi görüntülendi

  • Adım 2 - http: //localhost/phptuts/cookies.php URL'sine tarayıcı

  • Adım 3 - İlk sekmeye geri dönün ve ardından yenile düğmesine tıklayın

Bir dakika bekleyin ve ardından tekrar yenile düğmesine tıklayın. Hangi sonuçları aldın?

Çerezleri sil

  • Bir çerezi sona erme süresinden önce imha etmek istiyorsanız, sona erme süresini zaten geçmiş bir süreye ayarlarsınız.
  • Aşağıdaki kod ile yeni bir dosyalanmış cookie_destroy.php oluşturun
  • Çerez değerlerini almak için yukarıdaki bölümden 1'den 3'e kadar olan adımları tekrarlayın.
  • Http: //localhost/phptuts/cookie_destroy.php URL'sini açın
  • Http: //localhost/phptuts/cookies_read.php URL'sine geçin, hangi sonuçları gösterir?

Oturum nedir?

  • Oturum, sunucuda depolanan genel bir değişkendir.
  • Her oturuma, depolanan değerleri almak için kullanılan benzersiz bir kimlik atanır.
  • Bir oturum oluşturulduğunda, benzersiz oturum kimliğini içeren bir tanımlama bilgisi kullanıcının bilgisayarında saklanır ve her istekle birlikte sunucuya geri gönderilir. İstemci tarayıcısı tanımlama bilgilerini desteklemiyorsa, benzersiz php oturum kimliği URL'de görüntülenir.
  • Oturumlar, çerezlere kıyasla nispeten büyük verileri saklama kapasitesine sahiptir.
  • Tarayıcı kapatıldığında oturum değerleri otomatik olarak silinir. Değerleri kalıcı olarak saklamak istiyorsanız, bunları veritabanında saklamalısınız.
  • $ _COOKIE dizi değişkeni gibi, oturum değişkenleri de $ _SESSION dizi değişkeninde saklanır. Çerezler gibi, oturum herhangi bir HTML etiketinden önce başlatılmalıdır.

Oturumlar neden ve ne zaman kullanılmalı?

  • Kullanıcı kimliği gibi önemli bilgileri, kötü niyetli kullanıcıların bunlarla başa çıkamayacakları sunucuda daha güvenli bir şekilde depolamak istiyorsunuz.
  • Değerleri bir sayfadan diğerine geçirmek istiyorsunuz.
  • Çerezleri desteklemeyen tarayıcılarda çerezlerin alternatifini istiyorsunuz.
  • Global değişkenleri URL'de geçirmeye kıyasla verimli ve daha güvenli bir şekilde depolamak istiyorsunuz
  • Kapasitesi 4KB'den büyük olan bilgileri geçici olarak depolaması gereken bir alışveriş sepeti gibi bir uygulama geliştiriyorsunuz.

Oturum Oluşturma

Bir oturum oluşturmak için, önce PHP session_start işlevini çağırmalı ve ardından değerlerinizi $ _SESSION dizi değişkeninde depolamalısınız.

Bir sayfanın kaç kez yüklendiğini bilmek istediğimizi varsayalım, bunu yapmak için bir oturum kullanabiliriz.

Aşağıdaki kod, oturumlardan değerlerin nasıl oluşturulacağını ve alınacağını gösterir.

Çıktı:

You are visitor number 1

Oturum Değişkenlerini Yok Etme

Session_destroy () işlevi, tüm Php oturum değişkenlerini yok etmek için kullanılır.

Yalnızca oturumdaki tek bir öğeyi yok etmek istiyorsanız, unset () işlevini kullanırsınız.

Aşağıdaki kod, her iki yöntemin de nasıl kullanılacağını göstermektedir.

Session_destroy, oturumla ilişkili tanımlama bilgileri dahil tüm oturum verilerini kaldırır.

Unset yalnızca bireysel oturum değişkenlerini serbest bırakır.

Diğer veriler bozulmadan kalır.

Özet

  • Çerezler, kullanıcının bilgisayarına kaydedilen küçük dosyalardır.
  • Çerezler yalnızca veren alandan okunabilir
  • Tanımlama bilgilerinin bir sona erme süresi olabilir, ayarlanmadıysa, tarayıcı kapatıldığında tanımlama bilgisi sona erer.
  • Oturumlar, sunucuda depolanan global değişkenler gibidir
  • Her oturuma, bir kullanıcının değişkenlerini izlemek için kullanılan benzersiz bir kimlik numarası verilir.
  • Tarayıcıya herhangi bir HTML etiketi gönderilmeden önce hem çerezler hem de oturumlar başlatılmalıdır.