0

ウィザードでいくつかの情報を入力するフォームがあります。このページはPOSTで到達し、Smartyで表示されます。すべての情報を提出したら、別の投稿を使用して別のページに移動しています。ここで問題となるのは、[戻る]ボタンで戻ろうとすると、「ドキュメントの有効期限が切れました」というメッセージが表示されることです。

POSTを使用している間は通常よりもですか?

現在、GETを使用しようとしていますが、何も変更されていないか、GETの記述が間違っています。

これが小さなスキーマです:

Page 1 -> POST -> Page 2 (wizard) -> POST -> Page 3

3ページから2ページに戻ろうとすると、ドキュメントの有効期限が切れます。

私の問題に関してあなたの助けをありがとう。

4

2 に答える 2

5

http://en.wikipedia.org/wiki/Post/Redirect/Get

私の意見では、少なくとも本番環境では、すべてのPOSTに対してこれを行う必要があります。

小さな例:

if ('GET' == $_SERVER['REQUEST_METHOD']) {
   //display view
}
else if ('POST' == $_SERVER['REQUEST_METHOD']) {
   //process input
   //update session
   header('Location: /next/page/to/view', true, 303);
}

編集:この古い投稿はブラウザの送信に言及していたことを指摘したいと思います。RESTful Webサービスでは、POSTに対して201で応答する可能性があります。

于 2012-07-11T07:10:06.873 に答える
1

すべてが正しいです。プッシュBACKするPage 3と、実際には前のページに移動しようとしています。このページは、クッパのPOSTリクエストへの応答として生成されます。このページを表示するには、新しいPOSTリクエストを送信する必要があり、POSTデータに基づいてページが生成されます。

于 2012-07-11T07:03:03.860 に答える