Подтвердить что ты не робот

Что поддерживает сеанс php?

Поддерживаются ли сеансы только каждый раз, когда вы открываете страницу с помощью session_start(); или сохраняете ее на других страницах?

Пример (с 30 минутами):

1

пользователь обращается к странице с session_start(); Через 25 минут они получают доступ к другому session_start(); страница остается в живых

2

пользователь обращается к странице с session_start(); Через 25 минут они получают доступ к сеансу non-session_start();: страница сеанс остается в живых

Является ли 2 истинным?

4b9b3361

Ответ 1

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

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

В вашем случае правильны как 1, так и 2.

2 правильно, потому что пользователь уже обратился к странице с session_start(), и ваш идентификатор сеанса будет установлен в течение следующих 30 минут, и он будет присутствовать, даже если вы получаете доступ к странице, у которой нет сеанса.

ПРИМЕЧАНИЕ. Но страница, которую вы будете посещать, если содержит session_destroy(), ваш сеанс будет уничтожен.

Ответ 2

Вызов session_start() просто дает вашему коду доступ к сеансу.

Что поддерживает сеанс, ваш браузер отправляет идентификатор сеанса (хранящийся в cookie) на сервер, независимо от того, используете вы его или нет.

Ответ: Они оба верны.

Ответ 3

Здесь соответствующая часть из документации

Когда посетитель обращается к вашему сайту, PHP будет проверять автоматически (если для параметра session.auto_start установлено значение 1) или по вашему запросу (явно через session_start()) был ли отправлен конкретный идентификатор сеанса с запросом. Если это так, ранее сохраненная среда воссоздана.

http://www.php.net/manual/en/intro.session.php

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

http://www.php.net/manual/en/function.session-start.php

Это означает, что если вы не вызываете session_start, сеанс не возобновляется, и срок действия не продлевается.

Ответ 4

Session_start() является внутренним механизмом для доступа к сеансу php, а также для отправки cookie сеанса в браузер клиента.

  • Случай 1 верен: поскольку пользователь обратился к странице с session_start(), а затем к другой подобной странице.
  • Случай 2 действителен только в том случае, если время ожидания сеанса больше 25 минут между двумя посещениями.

В случае 2 сервер не будет отправлять cookie сеанса, его браузер, который содержит файл cookie в заголовке запроса.

Ответ 5

В данном случае время сеанса PHP в 30 минут является своего рода фактором "фокуса". Срок службы по умолчанию и почти универсальный сеанс составляет 1440 секунд или 24 минуты. Поэтому для большинства людей данные сеанса могли исчезнуть до отметки 25 минут.

В этой статье рассказывается о некоторых деталях, стоящих за работой PHP-сессий. http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_11909-PHP-Sessions-Simpler-Than-You-May-Think.html

Ответ 6

Он не должен ничего делать с веб-страницами, сеанс взаимодействует с вашим браузером с помощью идентификатора сеанса.

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

Чтобы запустить сеанс PHP в script, вы просто вызываете session_ start(). Если это новый сеанс, эта функция генерирует уникальный SID для сеанса и отправляет его в браузер в виде файла cookie с именем PHPSESSID (по умолчанию).  Однако, если браузер отправил PHPSESSID cookie на сервер, поскольку сеанс уже существует, session_start() использует этот существующий сеанс: session_start();

Ответ 7

Первый оператор верен, если вы не используете другое имя сеанса на обеих страницах.

Второй оператор является ложным.

Ответ 8

Если вам нужны сеансы на всех ваших страницах, session_start() должен быть вызван на всех ваших страницах.

Следовательно, 1 есть CORRECT, а 2 - CORRECT