$_SERVER['HTTP_REFERER'];
リファラー URL を取得するために使用しています。ユーザーが別のページをクリックしてリファラーが最後のページに変わるまで、期待どおりに機能します。
元の参照 URL を保存するにはどうすればよいですか?
$_SERVER['HTTP_REFERER'];
リファラー URL を取得するために使用しています。ユーザーが別のページをクリックしてリファラーが最後のページに変わるまで、期待どおりに機能します。
元の参照 URL を保存するにはどうすればよいですか?
Cookie (状況に応じて許容できる場合) またはセッション変数に保存します。
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
Johnathan が提案したように、Cookie またはセッションに保存する必要があります。
最も簡単な方法は、セッション変数を使用することです。
session_start();
if(!isset($_SESSION['org_referer']))
{
$_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}
それをページの上部に置くと、サイト訪問者が誘導された最初のリファラーにいつでもアクセスできます.
現在の閲覧セッションの間だけ存続する Cookie に保存する
ほとんどの場合、参照ページのリポジトリとして Cookie を使用する方がはるかに優れています。Cookie はブラウザーを閉じるまでリファラーを保持する (ブラウザーのタブを閉じても保持する) ため、ユーザーがページを開いたままにしておく場合に備えて、週末の前に、数日後に戻ってきた場合、セッションはおそらく期限切れになりますが、Cookie はまだそこにあります。
そのコードをページの先頭に配置します (Cookie はエコー/印刷の前にのみ適切に設定されるため、HTML 出力の前に):
if(!isset($_COOKIE['origin_ref']))
{
setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}
その後、後でアクセスできます。
$var = $_COOKIE['origin_ref'];
$_SERVER['HTTP_REFERER'] のエスケープについて @pcp が提案したことに加えて、Cookie を使用する場合、各リクエストで $_COOKIE['origin_ref'] をエスケープすることもできます。