Примери
PHP Manual

Забележка: От PHP 4.1.0, $_SESSION е достъпна като глобална променлива, също както $_POST, $_GET, $_REQUEST и така нататък. За разлика от $HTTP_SESSION_VARS, $_SESSION е винаги глобална. Следователно, няма нужда да използвате ключовата дума global за $_SESSION. Моля, обърнете внимание, че това ръководство е променено, като навсякъде се препоръчва използването на масива $_SESSION. Може да заместите $_SESSION с $HTTP_SESSION_VARS, ако предпочитате предишния начин. Също така забележете, че трябва да инициализирате сесията, посредством session_start() преди да може да използвате $_SESSION.
Ключовете в асоциативния масив $_SESSION са предмет на същите ограничения, както обикновените имена на променливи в PHP, т.е. те не могат да започват с цифра а трябва да започват с буква или подчертаващо тире. За повече информация, вижте раздела за променливи в това ръководство.

Ако е изключена register_globals , само членове на глобалния асоциативен масив $_SESSION могат да бъдат регистрирани като променливи на сесията. Подновените сесийни променливи ще бъдат достъпни само в масива $_SESSION.

Използването на $_SESSION (или $HTTP_SESSION_VARS при PHP 4.0.6 или по-малко) се препоръчва, за да се подобри сигурността и четливостта на кода. С $_SESSION не е нужно да използвате функциите session_register(), session_unregister() и session_is_registered(). Сесийните променливи са достъпни както другите променливи.

Example #1 Регистриране на променлива чрез $_SESSION.

<?php
session_start
();
// Използвайте $HTTP_SESSION_VARS при PHP 4.0.6 или по-старо
if (!isset($_SESSION['count'])) {
    
$_SESSION['count'] = 0;
} else {
    
$_SESSION['count']++;
}
?>

Example #2 Премахване на променлива чрез $_SESSION, при изключен register_globals .

<?php
session_start
();
// Използвайте $HTTP_SESSION_VARS при PHP 4.0.6 или по-старо
unset($_SESSION['count']);
?>

Внимание

НЕ премахвайте целия масив $_SESSION чрез unset($_SESSION), тъй като това ще попречи на регистрацията на сесийни променливи през супер-глобалния масив $_SESSION.

Предупреждение

Не можете да използвате референции в сесийни променливи, тъй като няма удобен начин да възстановите референция към друга променлива.

Ако е включена register_globals, всяка глобална променлива може да бъде регистрирана като сесийна променлива. По време на реинициализирането на сесията, тези променливи ще бъдат възстановени като съответните глобални променливи. Понеже PHP трябва да знае кои глобални променливи са регистрирани като сесийни променливи, потребителите трябва да регистрират променливите чрез фунцкията session_register(). Можете да избегнете това, като просто установявате елементите на масива $_SESSION.

Внимание

В по-стари версии от PHP 4.3.0, ако използвате $_SESSION и сте изключили register_globals, не използвайте session_register(), session_is_registered() или session_unregister(). Изключването на register_globals е препоръчително поради причини, свързани със сигурността и производителността.

Ако register_globals е включен, тогава глобалните променливи и стойностите на масива $_SESSION автоматично ще сочат към едни и същи стойностти, които са били регистрирани в предишната сесия. Ако обаче, променливата е регистрирана чрез $_SESSION, глобалната променлива е достъпна до следващата заявка.

В по-старите версии (включително PHP 4.2.3) съществува програмна грешка. Ако регистрирате нова сесийна променлива, използвайки session_register(), стойността в глобалната област на действие и стойността на масива $_SESSION няма да сочат към една и съща стойност до следващото използване на session_start(). Т.е. промяната на новата регистрирана глобална променлива няма да се повлияе от съответния елемент на масива $_SESSION. Това бе коригирано в PHP 4.3.0.


Примери
PHP Manual