Я делаю некоторые 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, вы можете избежать этого.
Эта проблема возникает из-за:
example2.php
, example2.php
и example3.php
example1.php
в example2.php
тогда я делал все данные БД в соответствии с моей потребностью и отображал страницу (не переадресован – только что опубликован, а страница получила визуализацию). example2.php
в example3.php
. Теперь, если вы нажмете кнопку браузера , срок действия документа истечет . Чтобы избежать этого, мы можем отправлять значения из example1.php
в example2.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 я нажал ссылку на page3.php.
Теперь я хочу вернуться на page2.php с page3.php. Но page2.php имеют значения форм, размещенные с использованием метода POST, и когда я прихожу на page2.php с page3.php, браузер показывает ошибку «Docuemnt Expired».
Поэтому я использовал метод 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"); ?>