|
Управлението на сесиите в PHP е механизъм, който позволява да се направи връзка между запитванията на даден клиент от дадено време. Както знаеме HTTP - протокола не прави връзка между различните запитвания, и след всяко ново запитване този процес приключва, докато не бъде направено ново запитване, което да стартира нов процес. Така за даден клиент се губи релацията между неговите запитвания. Затова се появява нуждата от управление на сесиите, което да позволи съответната релация между запитванията на даден клиент. При това се създават съответните Session-IDs автоматично, и данните се запазват и съхраняват от управлението на сесиите. PHP използва в случая на запазване на данните от сесията файловата система на съответния сервер. При запазване на данните променливите се сериализират автоматично.
При стартиране на дадена сесия се проверява първо, дали съществъва правилен Session-ID.Ако няма такъв, то тогава php прави съответния id. Ако има вече сесия, то тогава променливите на сеията могат да се използват като глобални променливи в дадения скрипт. Конфигурация на сесийния модул Можете да конфигурирате вашия сесиен модул от конфигурационния файл php.ini По-важните опции са: -- session.save_handler= files - Handler който дава информация, къде да се запазват файловете на сесията.Обикновено това става на самия сървър -- session.use_cookies = 1 - Казва, дали да се използват бисквитки -- session.name = PHPSESSID - Име на сесията -- session.auto_start = 0 - инициализация на сесията -- session.cookie_lifetime = 0 - времетраене на бисквитките, ако е нула, докато се рестратира браузера -- session.cookie_path = / - пътят, за който бисквитката е валидна -- session.cookie_domain = - домейнът, за който бисквитката е валидна -- session.serialize_handler = php - Handler, който отговаря за сериализацията на информацията.[PHP] е стандартният сериализатор на PHP -- session.gc_probability = 1 - проверява за вероятността, при която garbage collection е стартиран при инциализиране на сесията -- session.gc_dividend = 1000 -- session.gc_maxlifetime = 1440 - след като обозначеното време изтече, информацията отива в garbage collector и данните се изтриват -- session.cache_limiter = nocache - дефинира вида на каширане -- session.cache_expire = 180 - документът приключва своето съществуване, след като изтече зададеното време. Session-ID Фактически това е случайно избран ключ, който идентифицира сесийните файлове на сървъра.Този ключ може да се използва чрез бисквитка или чрез url и да се предаде на някой друг скрипт, така че последният да може отново да открие запазената на сървъра информация. Session-Functions в PHP PHP дава възможността да се използват стандартни функции. Ето и някои от тях: -- session_start() - инициализира дадена сесия -- session_id() - връща актуалното id или отваря сесията чрез предадено id -- session_is_registered() - проверява дали има регистрирана глобална променлива в сесията -- session_get_cookie_params() - връща параметрите на Session_Cookie -- session_decode() - декодира данните на даденаа сесия от даден string -- session_cache_expire() - връща времето на изтичане на сесията -- session_destroy() -- затваря сесията и премахва цялата информация -- session_regenerate_id() - замества актуалното id с ново -- session_unset() - изтрива всичките променливи на сесията. Изполване на session_start() С помоща на session_start можете да направите нова сесия или да рестартирате актуалната, която се базира на Session_ID, който се предава чрез GET, Post или Cookie. Пример: start.php CODE
Пример: next.php CODE
Използване на session_destroy() С помоща на тази функция можете да изтриете всичката информация свързана с тази сесия Ето и един пример: CODE
Сесии и масиви Пример:products.php CODE
Предаване на Session_ID през GET, POST Пример: start.php CODE
Пример: see.php CODE
Предаване на Session_ID през header() Можете да предавате Session_ID и чрез header().Тази функция праща на браузъра един HTTP-Header. Пример: CODE
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









