Рубрики
Uncategorized

Управление сеансом PHP

Автор оригинала: David Wong.

Контроль сеанса

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

На веб-сайте нам часто нужно отслеживать переменную: отслеживая переменную, мы можем установить связь между несколькими запросами, а затем отображать различный контент и разные страницы в соответствии с авторизацией и удостоверением пользователя. Это технология управления сеансами.

Общие технологии управления сеансами включают Файлы cookie и Сессия 。 Короче говоря, cookie предназначен для определения личности пользователя путем записи информации в клиенте; сеанс предназначен для определения личности пользователя путем записи информации на сервере.

Печенье

Файл cookie-это небольшой текстовый файл, который включается в сообщение HTTP-запроса и передается между веб-сервером и браузером. Файлы cookie работают следующим образом:

  1. Сервер устанавливает поле Set-Cookie и помещает данные cookie в Set-Cookie Поле передается в браузер вместе с HTTP-сообщением;
  2. После получения ответного HTTP-сообщения браузер проверяет, что Набор-Cookie Поле имеет значение. Файл cookie будет создан локально для сохранения данных;
  3. Когда браузер снова отправит запрос на сервер, браузер сначала выполнит поиск в локально сохраненном файле cookie. Если в файле cookie есть какие-либо файлы cookie, связанные с подключаемым URL-адресом, установите поле cookie в сообщении HTTP-запроса, добавьте данные в файл cookie в это поле и, наконец, отправьте сообщение http-запроса с полем cookie на сервер.

Файлы cookie могут использоваться для сохранения простой информации, такой как имя пользователя, пароль и настройки персонализации. Вот инструкции по использованию файлов cookie:

Установить
php
setcookie("Cookie", "cookievalue", time()+3600);

Вы должны вызвать setcookie () перед выводом HTML – файла.

Получать
удалить

Сессия

Сеанс-это метод сохранения данных сеанса пользователя на стороне сервера. Его принцип работы заключается в следующем:

  1. Когда браузер впервые обращается к PHP-скрипту, session_start() Функция создает уникальный идентификатор сеанса (у каждого клиента есть уникальный идентификатор) и автоматически сохраняет идентификатор сеанса в файле cookie клиента через заголовок HTTP-ответа. В то же время на сервере также создается файл с именем идентификатор сеанса для сохранения информации о сеансе пользователя;
  2. Когда тот же пользователь снова посетит веб-сайт, идентификатор сеанса, сохраненный в файле cookie, будет автоматически возвращен через заголовок HTTP-запроса;
  3. Серверный PHP-скрипт получает запрос клиента и session_start() Вместо назначения нового идентификатора сеанса функция выполняет поиск на жестком диске сервера файла сеанса с тем же именем, что и идентификатор сеанса, и считывает информацию о сеансе, ранее сохраненную для пользователя.

Во-первых, есть два способа создать уникальный идентификатор сеанса: с помощью файла cookie или get. PHP по умолчанию использует сеанс для создания имени PHPSESSID Значение session.name может быть изменен с помощью php.ini. Если клиент отключает файл cookie, вы можете указать, чтобы отправить идентификатор сеанса на сервер через get (изменить php.ini session.use_trans_sid и т.д.). Во – вторых, сеансы сохраняются в виде файлов. В php.ini есть элемент конфигурации --session.save_path= "" , заполненный путь сохранит все файлы сеанса. Формат именования файла сеанса: Sess_ [значение phpsessid] 。 Каждый файл содержит данные сеанса. Наконец, данные, сохраненные в файле сеанса, сериализуются, например:

S: 32: "77c18770c6cb5d89444c407aaa3e8477";

Сеанс также можно использовать для сохранения простой информации, такой как имя пользователя, пароль и настройки персонализации. Ниже приведены инструкции для сеанса:

Установить
//Start session
session_start();

//Register the session variable and assign it to the name of a user
$_SESSION["username"] = "jochen";

//Register the session variable and assign it to a user's ID
$_SESSION["uid"] = 1;

Примечание: перед выводом HTML-файла необходимо вызвать функцию session_start ().

читать
Разрушение

Следует отметить, что при наличии большого количества файлов сеанса возникают проблемы с производительностью чтения/записи ввода-вывода. В это время вы можете использовать memcached, redis и другие системы кэширования.

Оригинал: “https://developpaper.com/php-session-control/”