web-dev-qa-db-ja.com

PHPドキュメントが期限切れです

PHPコーディングを行っています。ブラウザで[戻る]ボタンを押すと、次のエラーが発生します。

Document Expired
This document is no longer available.

この状況に対応するためにどのコードを実装できますか

22
user1383147

PHPコードの最初にこれを追加します:

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

メインページでCache-Controlヘッダーを設定します。

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

Post/Redirect/Getルールを使用すると、これを回避できます。

この問題は、以下によって発生します。

  • example1.phpexample2.phpexample3.phpがあるとします
  • 私はいくつかの値をexample1.phpからexample2.phpに投稿しています。その後、必要に応じてすべてのDB処理を行い、ページをレンダリングしました(リダイレクトされません-投稿され、ページがレンダリングされました)。
  • その後、ページをexample2.phpからexample3.phpにリダイレクトしました。今ブラウザをクリックするとドキュメントは期限切れになります

これを回避するには、example1.phpからexample2.phpに値を投稿し、ユーザーを他のページにすぐにリダイレクトします。

これは Post/Redirect/Get のパターンであり、ドキュメントの期限切れを回避するために従うことができます。また、DBへの冗長なエントリを回避するのにも役立ちます。

サーバーのphp.iniに行き、これを変更してください

session.cache_limiter = nocache

なので

 session.cache_limiter = public

問題は解決されるでしょう。私はこれで私の問題を解決しました。

2
Kabir Hossain

この行をページに挿入してください。

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

のようなヘッダーでキャッシュが無効になっているかどうかを確認してください

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

1
zapping

私は同じ問題を経験しました。戻りたいページにフォームの値が投稿されていたため、[戻る]リンクをクリックすると、ドキュメントの期限切れエラーが表示されていました。例を見る

3つのページ、page1.php、page2.php、およびpage3.phpがあります。 POSTメソッドを使用して、page1.phpからpage2.phpにフォームを送信しています。page2.phpからpage3.phpのリンクをクリックしました。

ここで、page3.phpからpage2.phpに戻ってきます。しかし、page2.phpにはPOSTメソッドを使用してフォーム値が投稿されており、page3.phpからpage2.phpにアクセスすると、ブラウザにエラー「Docuemnt Expired」が表示されます。

だから私は GET 方法 代わりに の POST。したがって、page2.phpに戻ると、POSTのフォームとページの値は正しく読み込まれません。また、フォームの値がURLに存在するため、ページは期待どおりに読み込まれます。

1
Gokul Shinde

この問題は、次の2つのシナリオによって発生します。

  • Postを使用した検索の実装
  • 以前に投稿されたページにリダイレクトします。

ハックなしでこの問題を簡単に解決するには2つの方法があります。

ために search formpostメソッドを使用せず、代わりにgetメソッドを使用してください。すべて正常に動作します。

何らかの理由でフォーム入力を非表示にする必要があり、postメソッドを使用したい場合は、他のページへのリダイレクトを引き起こすリンク/アクションを、JavaScriptを介してリダイレクトさせます。

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

これにより、参照URLが削除され、新しいhttpリクエストが強制されます。ブラウザの[戻る]ボタンを押しても、ドキュメントが期限切れになることはありません。

0
Bsienn