Что это на самом деле?
Запускает ли он текущий сеанс на основе файлов cookie? Получил это с веб-сайта PHP. Как PHP контролирует сеанс? Если я начну сеанс, когда пользователь откроет мою страницу входа в систему, для чего я вообще использую этот сеанс? Можно ли использовать текущий сеанс для получения информации о зарегистрированном пользователе?
Система сеансов PHP позволяет хранить надежные данные в глобальном массиве $_SESSION
. Типичным примером является сохранение идентификатора пользователя в сеансе при вводе пароля:
if ($user = try_login($login, $password)) $_SESSION['user'] = $user;
Затем вы можете получить доступ к этой информации на всех других страницах:
if (isset($_SESSION['user'])) // logged in ! echo user_name($_SESSION['user']);
Данные хранятся на сервере, поэтому риск несанкционированного доступа (с другой стороны, не учитывайте использование диска).
Запуск сеанса позволяет текущему запросу использовать $_SESSION
. Если это первый визит пользователя, массив будет пустым, и для вас будет отправлен новый файл cookie сеанса.
Закрытие сеанса просто не позволяет текущему запросу использовать $_SESSION
, но данные остаются для следующих запросов.
Уничтожение сеанса навсегда отбрасывает все данные. После последнего посещения сеансы уничтожаются определенной продолжительностью (обычно около 30 минут).
Я предполагаю, что вы хотите знать, что означает сеанс PHP для вас, программист.
Когда вы выполняете session_start (), вы говорите PHP, что хотите использовать сеанс. Это доступно для вас как массив с именем $ _SESSION. Вы можете использовать это, как и любой другой массив, с той разницей, что материал, который вы там помещаете, остается там с одной страницы на другую (если вы используете session_start () в начале каждой страницы).
Фактический механизм может варьироваться в зависимости от конфигурации (php.ini), но типичная установка может использовать файлы cookie для сеанса. Предположим, что ваш веб-сервер находится в Linux, и вы используете файлы cookie. Вы делаете следующее
session_start(); $_SESSION['name']='Bob';
Когда PHP видит это, он создает текстовый файл с полуслучайным именем (например, sess_a3tfkd5558kf5rlm44i538fj07), прикрепляет содержимое $ _SESSION там как обычный текст и затем отправляет куки-файл пользователю с идентификатором сеанса, который можно использовать для поиска файл сеанса (например, a3tfkd5558kf5rlm44i538fj07).
В следующий раз, когда пользователь вернется, он передает идентификатор сеанса в свой файл cookie, PHP переходит к соответствующему файлу и загружает его содержимое в $ _SESSION.
Вы заметите, что фактическая информация хранится на сервере, пока пользователю предоставляется только идентификатор. Как будто сдавать пальто в клубе и получать билет с номером на нем.
Как говорится в Руководстве
session_start()
создает сеанс или возобновляет текущий на основе идентификатора сеанса, переданного через запрос GET или POST, или передается через файл cookie.
Если вы запустите новый сеанс на своей странице входа, сеанс изначально пуст. Вы можете хранить в нем все, что хотите, например, хранить идентификатор пользователя после входа пользователя. Данные сеанса уничтожаются при закрытии сеанса.
Возможно, вам захочется прочитать все главы на страницах расширенного руководства для сеансов, а также посмотреть
PHP session_start запускает ИЛИ возобновляет сеанс HTTP, который достаточно хорошо объясняется в этой статье:
http://en.wikipedia.org/wiki/Session_(computer_science)
Концепция «сеанса» HTTP не специфична для PHP, она используется во многих (все?) Серверных сторонах HTTP-инфраструктур как один из способов, позволяющих сохранять или связывать какое-либо состояние в разных запросах и ответах (поскольку HTTP является апатридом ). Уникальный токен (который часто, но не всегда, сохраняется в файле cookie) идентифицирует конкретного клиента, и сервер может связывать «сеанс».
Вот несколько дополнительных сведений о сессиях и PHP, в частности, которые могут помочь: http://www.php.net/manual/en/book.session.php
Вы можете сравнить PHP-сессию с файлом cookie, но сеанс – гораздо более безопасный способ хранения информации. Файлы cookie хранят данные на компьютере пользователя, но хранятся в хранилище на сервере во временном файле. Я обсуждал сессию и как ее использовать на одном из моих сообщений в блоге. Как начать сеанс PHP, сохранить и получить доступ к данным сеанса?
Ниже приведен пример кода хранения данных в сеансе PHP:
<?php session_start(); $_SESSION["name"] = "John"; ?>
Ниже приведен пример восстановления данных сеанса:
<?php session_start(); echo $_SESSION["name"]; ?>
В приведенном выше коде будет отображаться имя «Джон».
Источник: как запустить сеанс PHP, сохранить и получить доступ к данным сеанса?