Сессия - процесс обращения пользователя (человека или робота) к ресурсу. Сессия может состоять из произвольного количества запросов страниц. При обработке сервером запросов в рамках одной сессии возникает необходимость сохранения части данных для повторного использования. При это нужно уникально идентифицировать сессию конкретного посетителя.
Механизм сессии позволяет реализовать авторизацию пользователя на сервере, обеспечить хранение настроек пользователя в рамках одной сессии.
В PHP для реализации сесии предсмотрен функционал для начала пользовательской сессии, установки, чтения и удаления данных сесии.
Начало сессии осуществляется при помощи функции session_start(). При вызове этой функции PHP инициализирует сессию и передает на клиент куки (cookies) с идентификатором сесии. Вызов этой функции должен осуществляться до того, как в программе будет произведен какой-либо вывод информации пользователю. Название куки можно определить или установить при помощи функции session_name(). Идентификатор текущей сессии можно определить при помощи функции session_id().
Для доступа к переменным сесии существует суперглобальный массив $_SESSION. Каждый из элементов этого массива представляет переменную, значение которой будет сохранено для использования в рамках сессии. Доступ к элементам массива осуществляется так же, как и к элементам любого другого массива в PHP.
Пример (file1.php):
<?php
session_start();
$_SESSION['val1] = 'test';
?>
(file2.php) :
<?php
session_start();
print $_SESSION['val1'];
?>
Если сначала вызвать скрипт file1.php, а затем - file2.php, то вы увидите значение параметра val1, которое было установлено при выполнении скрипта file1.php.
Для очистки значения параметра сессии можно использовать функцию unset(). Пример (file3.php) :
<?php
session_start();
unset($_SESSION['val1']);
?>
Если теперь вызвавать скрипт file1.php, затем file2.php, затем file3.php и снова file2.php, то на последнем вызове значение параметра будет не определено.
Если необходимо прекратить учет сессии посетителя, то нужно вызвать функцию session_destroy().
При этом PHP удалит все данные сессии, а также удалит установленную куку (cookie) которая содержит идентификатор сессии.
Полный список функций для работы с сессией в PHP и их описание можно найти в официальном руководстве.