Альтернативный способ сделать доступными данные на разных страницах всего веб-сайта - использовать сеанс PHP.
Содержание:
Сеанс создает файл во временном каталоге на сервере, где хранятся зарегистрированные переменные сеанса и их значения. Эти данные будут доступны для всех страниц сайта во время этого визита.
Расположение временного файла определяется настройкой в файле php.ini с именем session.save_path . Bore с использованием любой переменной сеанса убедитесь, что вы установили этот путь.
Когда начинается сеанс, вот что происходит,
- PHP сначала создает уникальный идентификатор для этого конкретного сеанса, который представляет собой случайную строку из 32 шестнадцатеричных чисел, таких как 3c7foj34c3jj973hjkop2fc937e3443.
- Куки-файл PHPSESSID автоматически отправляется на компьютер пользователя для хранения уникальной строки идентификации сеанса.
- Файл создается автоматически на сервере в указанном временном каталоге и содержит имя уникального идентификатора, префиксного sess_ ie sess_3c7foj34c3jj973hjkop2fc937e3443.
Когда PHP-скрипт хочет получить значение из переменной сеанса, PHP автоматически получает уникальную строку идентификатора сеанса из файла cookie PHPSESSID, а затем ищет во временном каталоге файл с этим именем, и проверка может быть выполнена путем сравнения обоих значений.
Сессия заканчивается, когда пользователь теряет браузер или покидает сайт, сервер завершает сеанс по истечении заданного периода времени, обычно 30 минут.
Запуск сеанса PHP
Сессия PHP легко запускается путем вызова функции session_start(). Эта функция сначала проверяет, запущен ли сеанс, и если ни один не запущен, он запускает его. Рекомендуется поместить вызов session_start() в начале страницы. Переменные сеанса хранятся в ассоциативном массиве с именем $_SESSION [] . Доступ к этим переменным можно получить во время жизни сеанса.
В следующем примере начинается сеанс, затем регистрируется переменная с именем counter, которая увеличивается каждый раз, когда страница посещается во время сеанса.
Используйте функцию isset(), чтобы проверить, установлена ли уже переменная сеанса или нет. Поместите этот код в файл test.php и загрузите этот файл много раз, чтобы увидеть результат -
Это приведет к следующему результату -
Вы посетили эту страницу в этой сессии.
Уничтожение сеанса PHP
Сеанс PHP может быть уничтожен функцией session_destroy(). Эта функция не нуждается в каком-либо аргументе, и один вызов может уничтожить все переменные сеанса. Если вы хотите уничтожить одну переменную сеанса, вы можете использовать функцию unset(), чтобы отключить переменную сеанса.
Вот пример, чтобы отменить одну переменную -
Вот вызов, который уничтожит все переменные сеанса -Включение автоматического сеанса
Вам не нужно вызывать функцию start_session(), чтобы начать сеанс, когда пользователь посещает ваш сайт, если вы можете установить переменную session.auto_start
в файле php.ini.
Сессии без файлов cookie
Может быть случай, когда пользователь не разрешает хранить файлы cookie на своем компьютере. Таким образом, существует другой способ отправки идентификатора сеанса в браузер.
В качестве альтернативы вы можете использовать постоянный SID, который определяется, если сеанс запущен. Если клиент не отправил соответствующий cookie сеанса, он имеет форму session_name = session_id
. В противном случае он расширяется до пустой строки. Таким образом, вы можете безошибочно вставлять его в URL-адреса.
Следующий пример демонстрирует, как регистрировать переменную и как правильно ссылаться на другую страницу с использованием SID.
Это приведет к следующему результату -
Вы посетили эту страницу в этой сессии.
Чтобы продолжить, нажмите следующую ссылку.
Функция htmlspecialchars() может быть использована при печати SID для того, чтобы предотвратить XSS атаки.
С уважением, авторы сайта Компьютерапия
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
Новые статьи
Предыдущие статьи
- PHP-файлы cookie - Настройка, доступ и удаление cookie - 12/04/2018 19:19
- Файлы PHP и ввод-вывод - открытие, чтение, запись и закрытие файла - 12/04/2018 19:18
- Методы PHP GET и POST, переменная $_REQUEST - 12/04/2018 19:17
- Загрузка файлов PHP - Создание формы и сценария загрузки - 12/04/2018 19:16
- Объектно-ориентированное программирование в PHP - 12/04/2018 19:15
- Включение файла в PHP - Функция include и require - 12/04/2018 19:14
- Предопределенные переменные PHP - Суперглобальные массивы и переменные сервера - 12/04/2018 19:13
- Функции с параметрами, динамические вызовы, создание функции в PHP - 12/04/2018 19:12
- Типы операторов PHP - категории, присваивания, логические операторы - 12/04/2018 19:11
- Типы циклов PHP for, foreach, continue, break, do-while - 12/04/2018 19:10
- Принятие решений PHP - ElseIf Switch - 12/04/2018 19:09
- Типы констант PHP - Различия между константами и переменными - 12/04/2018 19:08
- Массивы PHP: Многомерные, ассоциативные и числовые массивы - 12/04/2018 19:07
- Типы переменных, область и имена переменных в PHP - 12/04/2018 19:06
- Строки в PHP, strpos, strlen, конкатенация строк - 12/04/2018 19:05
- Дата и время, получение, преобразование времени в PHP - 12/04/2018 19:03
- Обзор синтаксиса, канонические теги, комментирование PHP-кода - 12/04/2018 19:02
- Введение в PHP. Общее использование, характеристики PHP - 12/04/2018 19:01