CakeFest 2024: The Official CakePHP Conference

Giriş

PHP'deki oturum desteği, belli bir veriyi sonraki erişimlerden korumak için kullanılır.

Sitenize gelen her ziyaretçiye eşsiz bir kimlik atanır, buna oturum kimliği diyoruz. Bu kimlik istemci tarafında bir çerezde ya da doğrudan URL üzerinde saklanır.

Oturum desteği, $_SESSION dizisindeki istekler arasında veri saklamanızı sağlar. PHP otomatik olarak sizin tarafınızdan (session_start() üzerinden doğrudan) veya sitenize bir ziyaretçi geldiğinde karşı taraftan (session.auto_start 1 ise) istekle beraber oturuma özgü bir oturum kimliği gönderilip gönderilmediğine bakar. Gönderilmişse evvelce o oturum adına saklanmış ortam yeniden oluşturulur.

Dikkat

session.auto_start yönergesinin değeri On olduğu takdirde nesneleri oturumunuza sınıf tanımını yüklemek suretiyle koymak isterseniz bunu yapmanın tek yolu sınıf tanımını auto_prepend_file kullanarak yüklemektir. Aksi takdirde oturumunuza nesneleri koymak için nesnenizi önce serialize() ile dizgeleştirmek daha sonra unserialize() ile nesneleştirmek zorundasınız.

$_SESSION ve kayıtlı tüm değişkenler istek bittiğinde PHP tarafından session.serialize_handler yönergesinde belirtilen dizgeleştirme eylemcisi kullanılarak dahili olarak dizgeleştirilir. Oturuma kayıtlı değişkenlerden tanımsız olanlar tanımsız olarak imlenir. Sonraki erişimlerde kullanıcı bunları tanımlamadıça oturum modülü tarafından tanımsız olarak ele alınırlar.

Uyarı

Oturum verisi dizgeleştirildiğinden resource türündeki değişkenler oturumda saklanamaz.

Dizgeleştirme işleyicileri (php ve php_binary) register_globals sınırlamalarını devralır. Bu nedenle, sayısal veya dize indisi içeren özel karakterler (| ve !) kullanılamaz. Bunların kullanılması, komut dosyası kapatılırken hatalarla sonuçlanacaktır. php_serialize için bu tür sınırlamalar yoktur.

Bilginize:

Oturumlarla çalışırken, $_SESSION süper küresel dizisine yeni bir anahtar ekleninceye kadar bir oturum kaydının oluşturulmayacağına dikkat ediniz. Oturumu session_start() ile başlatsanız bile bu durum değişmez.

Bilginize:

PHP 5.2.2'de devreye giren ve PHP 5.3.0 sürümünde kaldırılan henüz belgelenmemiş bir özellik sayesinde oturum dosyaları "/tmp" dizininde ("/tmp" izin verilen dosya yollarına doğrudan eklenmiş olmasa da open_basedir) ile etkin kılınmasa da) saklanabilmekteydi.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top