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

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

Пример (с 30-минутным таймаутом):

1

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

2

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

Это правда?

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

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

В вашем случае оба 1 и 2 являются правильными.

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

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

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

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

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

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

Когда посетитель обращается к вашему сайту, 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 , сеанс не возобновляется, и срок действия не продлевается.

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

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

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

В данном случае время сеанса 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

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

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

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

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

Второе утверждение ложно.

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

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