2

次のようなコードを介してユーザーをリダイレクトするPHPスクリプトがあります。

header ('Location: http://someurl/somepage.php');

次に somepage.php$_SERVER['HTTP_REFERER']で、ページ要求がどこから来たのかを判断するためにアクセスしようとしています。$_SERVER['HTTP_REFERER']ヘッダー ロケーション メソッドを使用してページが呼び出されると、空であることがわかります。

$_SERVER['HTTP_REFERER']ターゲット ページで引き続き使用できるように、ユーザーをリダイレクトするために使用できる別の方法はありますか。

4

2 に答える 2

6

あなたが試すことができる1つのこと:Locationヘッダーを送信する代わりに、タグ付きのHTMLページを送り返します

<meta http-equiv="refresh" content="0;url=http://someurl/somepage.php">

<head>セクションで。問題が解決するかどうかはわかりませんが、ブラウザの動作に大きく依存します。の値は、ブラウザーがその裁量で自由に送信または送信しない要求ヘッダー$_SERVER['HTTP_REFERER']から取得されます。Referer

他にできることは

header("Location: http://someurl/somepage.php?referer=http%3A%2F%2Fthisurl%2Fthispage.php");

つまり、リファラー URL をクエリ文字列パラメーターとして送信すると、$_GET['referer']. これはおそらく、リファラー ヘッダーの送信をブラウザーに依存するよりも信頼性が高くなります。

于 2009-03-27T04:54:57.043 に答える
1

HTTP Referer: ヘッダーは、サーバーではなく、ユーザー エージェントによって設定されます。Referer ヘッダーを確実に取得するためにできることは何かわかりません。

于 2009-03-27T04:59:56.033 に答える