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

Срок действия PHP-документа

Я использую некоторую PHP-кодировку, если в браузере нажата кнопка "Назад", я получаю следующую ошибку:

Document Expired
This document is no longer available.

Какой код можно реализовать для удовлетворения этой ситуации?

4b9b3361

Ответ 1

Добавьте это в начало кодов PHP:

ini_set('session.cache_limiter','public');
session_cache_limiter(false);

Ответ 2

Настройте заголовок Cache-Control на главной странице.

<?php
header('Cache-Control: max-age=900');
?>

Ответ 3

Используя правило Post/Redirect/Get, вы можете избежать этого.

Эта проблема возникает из-за:

  • Скажем, у меня есть example1.php, example2.php и example3.php
  • Я отправляю несколько значений от example1.php до example2.php, тогда я сделал все данные БД в соответствии с моей потребностью и отобразил страницу (не перенаправлено - только что опубликовано и страница получена).
  • После этого я перенаправил страницу с example2.php на example3.php. Теперь, если вы нажмете кнопку браузера Документ истечет.

Чтобы избежать этого, мы можем отправлять значения от example1.php до example2.php и сразу перенаправлять пользователя на другую страницу.

Это Post/Redirect/Get шаблон, который можно использовать во избежание истечения срока действия документа. Это также помогает избежать избыточной записи в БД.

Ответ 4

Зайдите на свой сервер php.ini и измените это

session.cache_limiter = nocache

Как

 session.cache_limiter = public

Проблема будет решена. Я решил проблему с этим.

Ответ 5

Проверьте, отключено ли кэширование в заголовке, например

<HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

Ответ 6

Я пережил ту же проблему. Страница, на которой я хочу вернуться, разместила значения формы, и поэтому, когда я нажимаю ссылку "Назад", она показывает ошибку "Истек срок документа". См. Пример -

Есть три страницы, 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-адресе, страница будет загружаться, как ожидалось.

Ответ 7

Эта проблема возникнет в следующих двух сценариях:

  • Реализация поиска с помощью Post
  • Перенаправление на страницу, опубликованную ранее.

Есть два способа легко преодолеть эту проблему без каких-либо взломов.

Для search form не используйте метод Post, а используйте метод get, и все работает нормально.

Если вам действительно нужно скрыть ввод формы по любой причине и хотите использовать метод post, то ссылка/действие, которое вызывает перенаправление на другую страницу, перенаправляет ее через JavaScript.

location.replace('http://example.com/page2');

Это удаляет URL-адрес реферала и заставляет новый HTTP-запрос. Теперь нажатие кнопки "Назад" в браузере не приведет к истечению срока действия документа.

Ответ 8

просто поместите эту строку на свою страницу.

<?php 
header("Cache-Control: max-age=300, must-revalidate"); 
?>