この質問の題名は私の質問を説明しています。 header( "Location: URL of previous page" );
を使用してPHPページの訪問者を前のページにリダイレクトする方法
試してみてください。
header('Location: ' . $_SERVER['HTTP_REFERER']);
これは安全なページ(HTTPS)ではうまくいかないかもしれませんし、ヘッダが乗っ取られてユーザを他の目的地に送ることができるので全体的にかなり悪い考えです。ヘッダはブラウザによって送信されないかもしれません。
理想的には、次のいずれかを行います。
とてもシンプルなのでこれを使うだけ
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をフォーム内の隠しフィールドに保存し、ヘッダーを保存した後( "Location:呼び出しページのURLを保存")以外。