Сессии в языке PHP. Работа с Сессиями и общие понятия.

CLAY
Оффлайн
Регистрация
25.01.17
Сообщения
763
Реакции
224
Репутация
292
В процессе написания программы, у Вас может возникнуть необходимость сохранять значения некоторых переменных, в течение всех последующих загрузок страниц Вашего сайта, или другими словами пока пользователь не покинет Ваш сайт хранить определённые значения.

Здесь на помощь приходят сессии. Они способны хранить значения переменных на стороне сервера, то есть значения переменных, хранится не у пользователя в браузере, а у Вас на хостинге. Чаще всего сессии используют на сайтах, где есть регистрация и авторизация. При авторизации сохраняются параметры для каждого конкретного пользователя и, отталкиваясь от этих параметров, работают остальные сервисы сайта.

Расскажу о структуре сессий. В сессиях можно хранить как отдельные значения, так и массивы значений. Они одинаково хорошо хранят значения всех типов данных и массивов. Для обращения к элементу сессии используют конструкцию $_SESSION[‘Ключ’]. Сессии очень похожи на массивы, с той лишь разницей что в массивах информация хранится до завершения работы скрипта, а в сессиях пока не завершится сессия.

Для того чтобы начать работу с сессиями используйте функцию session_start(). Необходимо отметить что использовать эту функцию можно только до того как Ваш скрипт отправит данные браузеру пользователя. То есть если Вы собираетесь работать с сессиями, необходимо в самом начале Вашего скрипта использовать эту функцию. В противном случае возникнет ошибка. Дело в том, что PHP при работе с сессиями, отправляет заголовки браузеру. HTTP-заголовки отправляются до того, как будет загружена страница. Это необходимо учитывать при написании программ с использованием сессий.

Пример работы двух скриптов с сессиями. Скрипты находятся в разных файлах, но значение переменной будет передаваться через сессию:

Скрипт 1(script1.php):

<?php session_start();//Открываем сессию.

$_SESSION[‘param’] = ‘Это значение мы передадим другому скрипту’;//Задаём переменной значение.

echo(‘<a href=”script2.php”>Переход ко второму скрипту</a>’);//Выводим ссылку для перехода ко второму скрипту.

?>

Скрипт 2(script2.php):

<?php session_start();//Открываем сессию if (isset($_SESSION[‘param’]))//Проверяем существует ли нужная нам переменная

{ echo($_SESSION[‘param’]);//Выводим её значение на экран.

}

?>

Этот пример показывает примерную работу сессий в PHP. Как видите ничего сложного нету, для большей ясности опишу ещё один пример, с использованием одного скрипта.

<?php session_start();
//Открываем сессию if (isset($_SESSION[‘random_num’]))
//Если в сессии уже существует значение этой переменной

{ echo(‘Прошлое случайное число было – ’.$_SESSION[‘random_num’]);
//Выводим старое случайное число.

}

$_SESSION[‘random_num’] = (int) mt_rand(1,10);
//Находим случайное число от 1 до 10 echo(‘Случайное число – ’.$_SESSION[‘random_num’]);
//Выводим случайное число

?>

Чтобы понять работу этого скрипта, попробуйте его выполнить и посмотрите, как ведёт себя программа, при каждом обновлении страницы. При первом запуске она находит случайное число, а при последующих запусках выводит сначала старое число, а затем новое случайное число. Этот пример показывает нам, как хранить переменные в сессиях с помощью одного скрипта.

Для того чтобы завершить сессию используйте функцию session_destroy(). Эта функция удалит все значения, которые хранились в сессии. Её используют если вдруг по какой-то причине нам необходимо удалить все значения сессии (закрыть её).
 
Сверху Снизу