«Срок действия веб-страницы истек» $ _SESSIONS в PHP - PullRequest
3 голосов
/ 27 апреля 2009

В моем веб-приложении я использую $_SESSIONS, но иногда, когда пользователь нажимает клавишу возврата, он получает:

Срок действия веб-страницы истек

сообщение.

Почему это происходит? Что я могу сделать, чтобы избежать этого?

Ответы [ 3 ]

6 голосов
/ 27 апреля 2009

Это не имеет ничего общего с $_SESSION переменными, оно связано с тем, что вы переносите информацию между страницами, используя метод POST. Если вы хотите избежать этого, вам нужно использовать метод GET вместо POST.

2 голосов
/ 28 апреля 2009

Как сказал Чад, это результат возврата к странице, которая была результатом запроса POST. И, как сказано в комментариях, вы не можете просто заменить POST на GET, потому что это плохая идея по разным причинам.

Однако вы можете объединить два: пусть запрос будет POST, но выдаст перенаправление заголовка Location, которое браузер затем выполнит как GET. Для пользователя это будет выглядеть как одна операция, но для браузера это будет POST, за которым следует GET, что эффективно устраняет эту проблему.

2 голосов
/ 27 апреля 2009

Это также связано с директивами управления кэшем, отправляемыми в браузер. Взгляните на http://de.php.net/manual/en/session.configuration.php#ini.session.cache-limiter и http://shiflett.org/articles/how-to-avoid-page-has-expired-warnings, чтобы узнать больше о настройках кэша.

http://shiflett.org/articles/how-to-avoid-page-has-expired-warnings:

Recap

Чтобы избежать предупреждений «Страница устарела», установите для session.cache_limiter значение private и убедитесь, что любая форма, использующая метод POST, отправляется на промежуточную страницу обработки, которая перенаправляет пользователя на другой URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...