2009-03-27 22 views
2

私は次のようにいくつかのコードを介してユーザをリダイレクトされたPHPスクリプトを持っている:次にsomepage.phpに私はページ要求を持っている場所を決定するためにアクセス$_SERVER['HTTP_REFERER']にしようとしていますPHPリダイレクト

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

をから来る。ヘッダーの場所メソッドを使用してページが呼び出されたときに$_SERVER['HTTP_REFERER']が空であることがわかりました。

ターゲットページでまだ$_SERVER['HTTP_REFERER']を使用できるようにユーザーをリダイレクトするための代替方法がありますか?代わりにLocationヘッダを送信するのでは、<head>セクションで

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

タグを含むHTMLページを送り返す:あなたが試みることができる

答えて

6

一つ。私はそれがあなたの問題を解決するかどうかは分かりませんが...それは実際にブラウザの動作に依存します。 $_SERVER['HTTP_REFERER']の値は、その裁量で、ブラウザが自由に送信または送信することができるRefererリクエストヘッダーから取得されます。あなたが行うことができ、他の

何かが、あなたが$_GET['referer']としてそれにアクセスすることができ、クエリ文字列パラメータとしてリファラURLを送信する、ある

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

です。これはおそらく、リファラーヘッダーを送信するためにブラウザに依存するよりも信頼性が高いでしょう。

1

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