skip to content



Работа с сессией в PHP

Для чего нужна сессия и что она из себя представляет

Сессия - процесс обращения пользователя (человека или робота) к ресурсу. Сессия может состоять из произвольного количества запросов страниц. При обработке сервером запросов в рамках одной сессии возникает необходимость сохранения части данных для повторного использования. При это нужно уникально идентифицировать сессию конкретного посетителя.

Механизм сессии позволяет реализовать авторизацию пользователя на сервере, обеспечить хранение настроек пользователя в рамках одной сессии.

В 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 и их описание можно найти в официальном руководстве.

Powered by Drupal. CrystalX theme created by Nuvio | Webdesign.