PHP session_start()

Что это такое?

Запустит ли текущий сеанс на основе файлов cookie? Получил это с веб-сайта PHP. Как PHP контролирует сеанс? Если я начну сеанс, когда пользователь откроет мою страницу входа в систему, для чего я вообще использую этот сеанс? Можно ли использовать текущий сеанс для получения информации о зарегистрированном пользователе?

Ответы

Ответ 1

Система сеансов 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 минут).

Ответ 2

Я предполагаю, что вы хотите знать, что означает сеанс PHP для вас, программист.

Когда вы выполняете session_start(), вы говорите PHP, что хотите использовать сеанс. Это доступно для вас как массив с именем $_SESSION. Вы можете использовать это, как и любой другой массив, с той разницей, что материал, который вы там помещаете, остается там с одной страницы на другую (при условии, что вы используете session_start() в начале каждой страницы).

Фактический механизм может варьироваться в зависимости от конфигурации (php.ini), но типичная установка может использовать куки для сеанса. Предположим, что ваш веб-сервер находится в Linux, и вы используете файлы cookie. Вы выполняете следующие действия

session_start();
$_SESSION['name']='Bob';

Когда PHP видит это, он создает текстовый файл с полуслучайным именем (например, sess_a3tfkd5558kf5rlm44i538fj07), прикрепляет содержимое $_SESSION там как обычный текст и затем отправляет куки файл пользователю с идентификатором сеанса, который может быть используется для поиска файла сеанса (например, a3tfkd5558kf5rlm44i538fj07).

В следующий раз, когда пользователь вернется, он передает идентификатор сессии в свой файл cookie, PHP переходит в соответствующий файл и загружает его содержимое в $_SESSION.

Вы заметите, что фактическая информация хранится на сервере, пока пользователю предоставляется только идентификатор. Как будто раздавать пальто в клубе и получать билет с номером на нем.

Ответ 3

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

Ответ 4

Как говорится в Руководстве

session_start() создает сеанс или возобновляет текущий на основе идентификатора сеанса, переданного через запрос GET или POST, или передается через файл cookie.

Если вы запустите новый сеанс на своей странице входа, сеанс изначально пуст. Вы можете хранить в нем все, что хотите, например, хранить идентификатор пользователя после входа пользователя. Данные сеанса уничтожаются при закрытии сеанса.

Возможно, вам захочется прочитать все главы в страницах с инструкциями по расширению сеанса, а также просмотреть

Ответ 5

Вы можете сравнить сеанс PHP с файлом cookie, но сеанс - это гораздо более безопасный способ хранения информации. Файлы cookie хранят данные на компьютере пользователя, но хранятся в хранилище на сервере во временном файле. Я обсуждал сессию и как ее использовать на одном из моих сообщений в блоге - Как запустить сеанс PHP, сохранить и получить доступ к данным сеанса?

Ниже приведен пример кода хранения данных в сеансе PHP:

<?php
session_start();
$_SESSION["name"] = "John";
?>

Ниже приведен пример восстановления данных сеанса:

<?php
session_start();
echo $_SESSION["name"];
?>

В приведенном выше коде будет отображаться имя "Джон".

Источник: Как запустить сеанс PHP, сохранить и получить доступ к данным сеанса?