0

更新時にフォームを再送信するのを避けるために、同じページで使用$_SERVER['PHP_SELF'];しても問題ありませんか、それとも標準ですか。header('Location: http://www.example.com/form.php');

$_SERVER['PHP_SELF'];フォームのあるページで使用するという概念は理解していますheader('Location: http://www.example.com/form.php');が、データベースへの再送信を避けるために使用する場合は、同じページにリダイレクトする必要があります。

私はちょっと混乱しています。

更新:もう少し明確にする

フォーム アクションで処理ファイル名を使用したくない (将来の証明 - ファイル名の変更など) $_SERVER['PHP_SELF']。それを避けるために PRG ルートに進みますが、同じページにリダイレクトしても$_SERVER['PHP_SELF']問題は解決しません。

他の人はどうやってやっているのかしら。要するに、更新時に再送信せずに、同じページでフォームと処理を行いたいのです。

4

1 に答える 1

1

このパターンはPost/Redirect/Getとして知られています。

入力データを処理するページにリダイレクトする必要があります。たとえば、フォーム アクションが$_SERVER['PHP_SELF'];同じページで入力データを処理する場合は、別のページで入力データを処理する場合は同じページにリダイレクトします。そのページにリダイレクトします。

だから、もし

同じページにリダイレクトする必要があります。

は質問です。答えはイエスです。GETまた、「送信に成功しました」というメッセージなどを表示するために、いくつかの変数を追加することもできます。

于 2013-06-10T16:30:27.533 に答える