この質問のタイトルは、私の質問を説明しています。PHPページの訪問者を前のページにリダイレクトするにはどうすればよいですか?header( "Location: URL of previous page" );
7 に答える
試す:
header('Location: ' . $_SERVER['HTTP_REFERER']);
これはセキュアページ(HTTPS)では機能しない可能性があり、ヘッダーが乗っ取られてユーザーを他の宛先に送る可能性があるため、全体としてはかなり悪い考えであることに注意してください。ヘッダーはブラウザからも送信されない場合があります。
理想的には、次のいずれかを実行する必要があります。
- リクエストに差出人住所をクエリ変数として追加します(例:?back = / list)
- コードでリターンページを定義します(つまり、成功したすべてのフォーム送信はリストページにリダイレクトされます)
- 次に行きたい場所のオプションをユーザーに提供します(例:保存して編集を続行するか、単に保存する)
とても簡単ですこれを使うだけです
header("location:javascript://history.go(-1)");
私にとってはうまく機能しています
どういうわけかその場所を保存する必要があります。
POSTフォームだとすると、現在の場所を非表示のフィールドに入力して、そのheader()
場所で使用します。
exit;
ほんの少しの追加:残りのコードをロードまたは実行したくない場合に備えて、ヘッダー関数の後に追加することは一般的で既知のことだと思います...
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;
Javascriptでこれを試してみてください:
$previous = "javascript:history.go(-1)";
または、PHPで試すことができます。
if(isset($_SERVER['HTTP_REFERER'])) {
$previous = $_SERVER['HTTP_REFERER'];
}
ユーザーが複数のページを右クリックしてから戻って保存する可能性があるため、以前のURLをセッション変数に保存するのはよくありません。
セッション変数の前のURLをフォームの非表示フィールドに保存し、ヘッダーを保存した後( "場所:呼び出しページのURLを保存");
この質問は特にヘッダーに焦点を当てていることは知っていますが、ボタンの内側でそれを実行したい場合は、これで十分です。
<button type="button" class="btn btn-default" onclick="javascript:history.go(-1)">Back</button>