Я использую некоторую PHP-кодировку, если в браузере нажата кнопка "Назад", я получаю следующую ошибку:
Document Expired
This document is no longer available.
Какой код можно реализовать для удовлетворения этой ситуации?
Я использую некоторую PHP-кодировку, если в браузере нажата кнопка "Назад", я получаю следующую ошибку:
Document Expired
This document is no longer available.
Какой код можно реализовать для удовлетворения этой ситуации?
Добавьте это в начало кодов PHP:
ini_set('session.cache_limiter','public');
session_cache_limiter(false);
Настройте заголовок Cache-Control на главной странице.
<?php
header('Cache-Control: max-age=900');
?>
Используя правило Post/Redirect/Get, вы можете избежать этого.
Эта проблема возникает из-за:
example1.php
, example2.php
и example3.php
example1.php
до example2.php
, тогда я сделал все данные БД в соответствии с моей потребностью и отобразил страницу (не перенаправлено - только что опубликовано и страница получена).example2.php
на example3.php
.
Теперь, если вы нажмете кнопку браузера Документ истечет. Чтобы избежать этого, мы можем отправлять значения от example1.php
до example2.php
и сразу перенаправлять пользователя на другую страницу.
Это Post/Redirect/Get шаблон, который можно использовать во избежание истечения срока действия документа. Это также помогает избежать избыточной записи в БД.
Зайдите на свой сервер php.ini и измените это
session.cache_limiter = nocache
Как
session.cache_limiter = public
Проблема будет решена. Я решил проблему с этим.
Проверьте, отключено ли кэширование в заголовке, например
<HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
Я пережил ту же проблему. Страница, на которой я хочу вернуться, разместила значения формы, и поэтому, когда я нажимаю ссылку "Назад", она показывает ошибку "Истек срок документа". См. Пример -
Есть три страницы, page1.php, page2.php и page3.php. Теперь я передаю некоторую форму с page1.php на page2.php, используя метод POST. Из page2.php я нажал ссылку на страницу 3.php.
Теперь я хочу вернуться на page2.php с page3.php. Но page2.php имеют значения форм, размещенные с использованием метода POST, и когда я прихожу на page2.php с page3.php, браузер показывает ошибку "Идентификатор Docuemnt".
Итак, я использовал GET метод вместо из POST. Поэтому, вернувшись на page2.php, тогда значения POST для формы и страницы не будут загружаться должным образом. Кроме того, поскольку значения формы присутствуют в URL-адресе, страница будет загружаться, как ожидалось.
Эта проблема возникнет в следующих двух сценариях:
Post
Есть два способа легко преодолеть эту проблему без каких-либо взломов.
Для search form
не используйте метод Post
, а используйте метод get, и все работает нормально.
Если вам действительно нужно скрыть ввод формы по любой причине и хотите использовать метод post, то ссылка/действие, которое вызывает перенаправление на другую страницу, перенаправляет ее через JavaScript.
location.replace('http://example.com/page2');
Это удаляет URL-адрес реферала и заставляет новый HTTP-запрос. Теперь нажатие кнопки "Назад" в браузере не приведет к истечению срока действия документа.
просто поместите эту строку на свою страницу.
<?php
header("Cache-Control: max-age=300, must-revalidate");
?>