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

Я делаю некоторые 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"); ?>