132

この質問のタイトルは、私の質問を説明しています。PHPページの訪問者を前のページにリダイレクトするにはどうすればよいですか?header( "Location: URL of previous page" );

4

7 に答える 7

273

試す:

header('Location: ' . $_SERVER['HTTP_REFERER']);

これはセキュアページ(HTTPS)では機能しない可能性があり、ヘッダーが乗っ取られてユーザーを他の宛先に送る可能性があるため、全体としてはかなり悪い考えであることに注意してください。ヘッダーはブラウザからも送信されない場合があります。

理想的には、次のいずれかを実行する必要があります。

  • リクエストに差出人住所をクエリ変数として追加します(例:?back = / list)
  • コードでリターンページを定義します(つまり、成功したすべてのフォーム送信はリストページにリダイレクトされます)
  • 次に行きたい場所のオプションをユーザーに提供します(例:保存して編集を続行するか、単に保存する)
于 2011-03-12T19:52:50.863 に答える
26

とても簡単ですこれを使うだけです

header("location:javascript://history.go(-1)");

私にとってはうまく機能しています

于 2012-01-18T11:18:28.637 に答える
17

どういうわけかその場所を保存する必要があります。

POSTフォームだとすると、現在の場所を非表示のフィールドに入力して、そのheader()場所で使用します。

于 2011-03-12T19:54:29.827 に答える
16

exit;ほんの少しの追加:残りのコードをロードまたは実行したくない場合に備えて、ヘッダー関数の後に追加することは一般的で既知のことだと思います...

header('Location: ' . $_SERVER['HTTP_REFERER']);
exit;
于 2014-08-10T13:23:41.217 に答える
5

Javascriptでこれを試してみてください:

 $previous = "javascript:history.go(-1)";

または、PHPで試すことができます。

if(isset($_SERVER['HTTP_REFERER'])) {
    $previous = $_SERVER['HTTP_REFERER'];
}
于 2015-05-27T12:17:28.237 に答える
3

ユーザーが複数のページを右クリックしてから戻って保存する可能性があるため、以前のURLをセッション変数に保存するのはよくありません。

セッション変数の前のURLをフォームの非表示フィールドに保存し、ヘッダーを保存した後( "場所:呼び出しページのURLを保存");

于 2012-02-06T07:40:59.790 に答える
0

この質問は特にヘッダーに焦点を当てていることは知っていますが、ボタンの内側でそれを実行したい場合は、これで十分です。

<button type="button" class="btn btn-default" onclick="javascript:history.go(-1)">Back</button>
于 2021-06-21T11:09:06.187 に答える