Поведението на тези функции зависи от настройките в php.ini.
Име | По подразбиране | Променяемо | Дневник на промени |
---|---|---|---|
session.save_path | "" | PHP_INI_ALL | |
session.name | "PHPSESSID" | PHP_INI_ALL | |
session.save_handler | "files" | PHP_INI_ALL | |
session.auto_start | "0" | PHP_INI_ALL | |
session.gc_probability | "1" | PHP_INI_ALL | |
session.gc_divisor | "100" | PHP_INI_ALL | Налична от PHP 4.3.2. |
session.gc_maxlifetime | "1440" | PHP_INI_ALL | |
session.serialize_handler | "php" | PHP_INI_ALL | |
session.cookie_lifetime | "0" | PHP_INI_ALL | |
session.cookie_path | "/" | PHP_INI_ALL | |
session.cookie_domain | "" | PHP_INI_ALL | |
session.cookie_secure | "" | PHP_INI_ALL | Налична от PHP 4.0.4. |
session.cookie_httponly | "" | PHP_INI_ALL | Налична от PHP 5.2.0. |
session.use_cookies | "1" | PHP_INI_ALL | |
session.use_only_cookies | "1" | PHP_INI_ALL | Налична от PHP 4.3.0. |
session.referer_check | "" | PHP_INI_ALL | |
session.entropy_file | "" | PHP_INI_ALL | |
session.entropy_length | "0" | PHP_INI_ALL | |
session.cache_limiter | "nocache" | PHP_INI_ALL | |
session.cache_expire | "180" | PHP_INI_ALL | |
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.2.3. PHP_INI_PERDIR в PHP < 5. Налична от PHP 4.0.3. |
session.bug_compat_42 | "1" | PHP_INI_ALL | Налична от PHP 4.3.0. Премахната в PHP 6.0.0 |
session.bug_compat_warn | "1" | PHP_INI_ALL | Налична от PHP 4.3.0. Премахната в PHP 6.0.0 |
session.hash_function | "0" | PHP_INI_ALL | Налична от PHP 5.0.0. |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Налична от PHP 5.0.0. |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Налична от PHP 4.0.4. |
За по-детайлна информация и дефинициите на константите PHP_INI_*, вижте Where a configuration setting may be set.
Системата за управление на сесиите поддържа няколко конфигурационни опции, които може да настроите в php.ini файла. Нека направим кратко резюме.
Съществува незадължителен аргумент N към тази директива, който определя редица нива на директорията, на които може да се разположат сесийните файлове. Например, установяването в '5;/tmp' може да прекрати създаването на сесийни файлове в местоположение като /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If . За да използвате аргумента N, трябва да създадете всички тези директории предварително. За да направите това можете да използвате shell скрипта от ext/session. Нарича се mod_files.sh. Обърнете внимание, че ако се използва N и е по-голямо от 0, тогава автоматичното "почистване на боклука", няма да бъде осъществено, прегледайте някой от php.ini файловете за повече информация. Също, ако използвате N, се уверете, че ограждате session.save_path в кавички, защото разделителя (;) се използва за коментари в php.ini.
Ако оставите стойността на тази настройка да е общодостъпната директория /tmp (по подразбиране), други потребители на сървъра биха могли да откраднат сесията ви, ако видят списъка на файловете в директорията.
Забележка: До PHP 4.3.6, Windows потребителите трябваше да променят тази променлива, за да използват функциите за сесии в PHP. Трябва да бъде определен валиден път, като например: c:/temp.
Забележка: Ако различни скриптове имат различни стойности на session.gc_maxlifetime, но споделят едно и също място за съхранение на сесийните данни, тогава скриптът с по-малката стойност ще си изчисти данните. В този случай, използвайте директивата заедно с session.save_path.
Забележка: Ако използвате подразбиращия се файлово-базиран сесиен манипулатор, вашата файлова система трябва да следи за времето на достъп (atime). Системата FAT на Windows не го прави, така че ще трябва да се насочите към друг начин, за да работите с събирането на боклука на вашата сесия, ако сте се сблъсквали с файловата система FAT или друга такава, където следенето на времето на достъп, не се поддържа. От PHP 4.2.3 се използва mtime (променлива дата) вместо atime. Така че, няма да имате проблеми с файловите системи, където atime следенето не се поддържа.
Забележка: Крайният timestamp е установен относително към сървърното време, което не е задължително да е същото като времето в браузера на клиента.
Забележка: За PHP 4.1.2 или по-малка, се добавя чрез компилирането на --enable-trans-sid. От PHP 4.2.0, "trans-sid" възможностите са винаги компилирани. URL базираното управление на сесии крие допълнителни рискове за сигурността, в сравнение с управление чрез бисквитки. Потребителите могат да изпратят URL адрес, съдържащ активен идентификатор на сесията на свои приятели по ел. поща или също така могат да съхраняват URL адрес, съдържащ сесиен идентификатор в отметките на браузъра и например винаги да посещават сайта ви с един и същ сесиен идентификатор.
След въвеждането на PHP 6.0.0 също е възможно да се използва всеки от алгоритмите в пакета разширения за хеширане (ако е достъпен), като например sha512 или whirlpool. Пълен списък на поддържаните алгоритми може да бъде получен чрез функцията hash_algos().
Забележка: Това е въведено в PHP 5.
Забележка: Това бе въведено в PHP 5.
Забележка: Ако искате код съвместим със strict HTML/XHTML, изтрийте атрибута form и използвайте таговете <fieldset> около вашите полета на формуляра.
Конфигурационните настройки на track_vars и register_globals влияят на метода на съхранение и извличане на сесийните променливи.
Забележка: От PHP 4.0.3, track_vars е винаги включено.