Задать вопрос
@omichkun

Сколько будет жить cookie, если сессия не закончилась?

Добрый день.
Возник такой вопрос: если я возьму и установлю время жизни куки на +15 минут от текущего времени при входе на сайт, но пользователь будет находиться там дольше, как поведёт себя кука: умрет во время сессии, или при окончании сессии, или при следующем входе?
  • Вопрос задан
  • 8072 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Важно не время нахождения пользователя на сайте, а время между двумя обращениями к серверу (это может быть и переход пользователя на другую страницу, и подгрузка контента AJAX'ом и т.п.).

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

Если между обращениями к серверу прошло меньше 15 минут, то сервер возьмёт id сессии из куки и по этому id восстановит состояние сессии из архива. При этом время жизни куки передвинется на +15 минут от текущего.

Если же прошло больше 15 минут, то кука будет удалена и при следующем обращении к серверу он не сможет прочитать id сессии - потому автоматически создаст новую сессию с новым id и этот id будет записан во вновь созданную куку.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Вопрос не очень понятен. О какой куке речь? Как она связана с сессией?
О какой сессии речь? О сеансе работы с сайтом или о РНР сессии?
Если речь о той куке, в которой передается идентификатор сессии, то её вообще не надо руками трогать, оставив все параметры по умолчанию, в том числе и всремя жизни.
В этом случае время жизни куки будет выставлено в 0, и кука будет жить ровно столько, сколько длится сессия - не больше и не меньше.

Если все же залезть шаловливыми ручонками в настройки и выставить время жизни куки в 15 минут, то РНР сессия умрет вместе с кукой, разумеется.

Если остались вопросы, то сначала обязательно прочитать, что такое сессии
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы