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

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

Document Expired
This document is no longer available.

Какой код я могу реализовать, чтобы удовлетворить эту ситуацию

 Roman Newaza29 мая 2012 г., 10:26
Какой у тебя код?
 AlphaMale29 мая 2012 г., 10:30
Вы пытаетесь отправить форму, а затем через некоторое время нажмите кнопку назад?
 JJJ29 мая 2012 г., 10:30
возможный дубликатError - Web Page Has Expired in PHP?
 Teson29 мая 2012 г., 10:30
Вы используете POST для поиска? Простой ответ: не т.
 user138314729 мая 2012 г., 10:48
@AlphaMale: да

Ответы на вопрос(8)

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

<?php
header('Cache-Control: max-age=900');
?>
 08 янв. 2016 г., 22:54
Это не сработало для меня, но решение, предложенное @tazo todua ниже, сработало.

Add this in the start of PHP codes:

ini_set('session.cache_limiter','public');
session_cache_limiter(false);
 05 мар. 2015 г., 06:12
Благодарю. Это решило проблему кнопки назад ..
 08 янв. 2016 г., 22:53
Супер легко исправить относительно сложную и неприятную проблему, спасибо!

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

Есть три страницы, 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, в браузере отображается ошибка & quot; Docuemnt Expired & quot ;.

Так что я использовалGET методinstead изPOST, Поэтому, когда вы вернетесь на page2.php, тогда не будет POST-значений формы, и страница загрузится правильно. Кроме того, так как значения формы присутствуют в URL, страница будет загружаться как положено.

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

Implementing searching with Post Redirecting back to a page that was posted previously.

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

Заsearch form не использоватьpost метод, вместо этого используйте метод get, и все работает нормально.

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

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

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

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

session.cache_limiter = nocache

Как

 session.cache_limiter = public

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

 09 нояб. 2015 г., 19:31
Это сработало и для меня.

Using Post/Redirect/Get rule you can avoid this.

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

Let say I have example1.php, example2.php and example3.php I am posting some values from example1.php to example2.php then I did all the DB stuff as per my need and rendered the page (Not Redirected - Just posted and the page got rendered). After that I have redirected the page from example2.php to example3.php. Now if you click browser back Document will Expire.

To Avoid this we can post the values from example1.php to example2.php and redirect the user to some other page immediately.

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

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

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

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

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

 user138314729 мая 2012 г., 10:47
Хорошо, и если это так, что мне делать?
 06 июн. 2012 г., 15:15
Вы должны удалить это. Это должно включить кэширование.

Ваш ответ на вопрос