Сессии в PHP предназначены для хранения сведений о пользователе, в то время как он перемещается по сайту. Как вы знаете, нельзя сохранять значения переменных за пределами страницы. Если вы переходите с первой страницы на вторую, то все переменные, которые были на предыдущей странице, тут же стираются. Но, что же делать, если вам нужно как-то сохранять значения переменных при перемещении по страницам? Для этого и придумали сессии.
Работа с сессиями
Открытие сессии.
session_start(); — эта функция создает сессию. Если сессия уже существует, то она загружает из неё все значения переменных.
Регистрация переменных сессии.
После того как сессия открыта, в неё можно помещать значения:
$_SESSION[‘xxx’] = «любое значение»;
Как видите, сессия представляет собой суперглобальный массив $_SESSION, в котором и хранится вся наша информация. Для того чтобы на следующей странице были доступны значения суперглобального массива $_SESSION, достаточно просто записать: session_start(); в начале страницы. Давайте снова обратимся к нашим страницам (primer.php и page1.php), при переходе с первой на вторую информация не будет теряться, т.к. мы будем использовать сессии.
Код главной страницы: «primer.php»
<?php session_start(); // открываем сессию. $_SESSION[‘xxx’] = «Андрей»; // записываем в массив сессии значение. echo»<a href=’page1.php’>Перейти на следующую</a>»; // выводим ссылку на вторую страницу. ?> |
Код второй страницы: «page1.php»
<?php session_start(); // т.к. сессия уже есть, то PHP просто загружает из неё все значения переменных. echo $_SESSION[‘xxx’]; // выводим значение, которое находиться в этой сессии. ?> |
Вот и всё. Теперь записанное нами значение будет доступно на всех страницах в которых указано session_start();
Закрытие сессии.
Для удаления какой-либо переменной сессии подходит функция unset().
unset($_SESSION[‘xxx’]);
Для разрушения всей сессии используют функцию session_destroy().
Пример:
<?php session_start(); $age = 32; $_SESSION[‘username’] = ‘Иван’; $_SESSION[‘age’] = $age; unset($_SESSION[‘username’]); echo $_SESSION[‘username’];// Не выведет ничего echo $_SESSION[‘age’];// Выведет 32 session_destroy();// Разрушаем всю сессию. ?> |
Как работают сессии
При использовании сессий данные сохраняются во временных файлах на сервере. После того как посетитель закрыл страницу, файл стирается с сервера.
Если у посетителя включена возможность принимать cookies, то сессия записывается в cookies и при каждом обращении браузер передает значение сессии серверу. Если такая возможность отключена пользователем, то PHP подставляет к каждой ссылке идентификатор сессии, и при переходе между страницами мы видим ссылки типа index.php?PHPSESSID=9ebca8bd62c830d3e79272b4f585ff8f
Это лишь поверхностное знакомства с PHP но этого достаточно для того чтобы знать какие инструменты нужны для решения той или иной задачи. Для того чтобы изучить все возможности PHP воспользуйтесь учебником.