Вся работа с сессиями начинается с функции session_start. Эта функция создает сессию и обеспечивает к ней доступ (продолжает сессию). Если в начале кода не вызвана эта функция, работать с сессиями мы не сможем.
Для работы с сессиями используют глобальный массив $_SESSION. Если хотим что-то сохранить в сессии, просто создаем ячейку в этом массиве и присваиваем ей значение.
Для вывода — обращаемся к ячейке этого массива.
Рассмотрим на примере:
$_SESSION // в этом массиве все хранится $_SESSION["user"] = "Max"; // сохранение данных в сессии //Удаление сессии unset($_SESSION["user"]); session_destroy(); session_id();// id сессии session_name();// имя сессии
По умолчанию сессии хранятся во временной директории операционной системы в папке Temp. Данные сюда попадают благодаря cookies. У каждой сессии есть свой id и name. Теоретически, если бы не было механизма сессии, мы могли бы сами его создать. За сессию все действия выполняют следующие объекты: 1) создается файл с сгенерированным случайным именем, 2) посылается cookie, 3) сериализуем данные в cookie, 4) когда идет обращение к cookie, вытаскиваются данные (unserialize), они зачитываются. Все эти действия за нас выполняет механизм сессий автоматически.
Существует необходимость убить сессию принудительно (как и в случае с cookie). Для этого есть функция session_destroy. Но здесь есть недостаток: файл сессии не удалится, он просто очистится, т.е. файл останется и его id тоже. Поэтому для полного удаления файла и его id нужно послать в коде удаление куки.
У сессии можно установить срок действия. По умолчанию стоит 20 минут от последнего запроса пользователя.