Oturum Yönetimi SistemiSessions
&reftitle.intro;
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.
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.
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.
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.
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.
&reference.session.setup;
&reference.session.constants;
&reference.session.examples;
&reference.session.upload-progress;
&reference.session.security;
&reference.session.reference;
&reference.session.sessionhandler;
&reference.session.sessionhandlerinterface;
&reference.session.sessionidinterface;
&reference.session.sessionupdatetimestamphandlerinterface;