転載元: http://blog.csdn.net/amonest/article/details/6432530
PHP の $_SERVER['HTTP_REFERER'] には、前のアンカー タグ (このページにジャンプします) のアドレスが記録されています。ブラウザで直接実行する場合、このパラメータは空です。
UCHome と ECShop のソースコードを見ると、$_SERVER['HTTP_REFERER'] の値がよく使用されていることがわかりました。 HTTP REFERER はヘッダーの一部であり、ブラウザが WEB サーバーにリクエストを送信するときに、サーバーが処理する情報を取得できるように、HTTP REFERER を使用してリンク元のページをサーバーに伝えます。たとえば、私が私のホームページから友人にリンクした場合、彼のサーバーは、毎日何人のユーザーが私のホームページ上のリンクをクリックして彼の Web サイトにアクセスしたかを HTTP REFERER からカウントできます。 HTTP_REFERER のさまざまな変更を説明するために、以下の例を作成しました。
次のコードを Referer.php という名前の PHP ファイルに保存してください:
<a href="?p=referer1" mce_href="?p=referer1">referer1</a> | <a href="?p=referer2" mce_href="?p=referer2">referer2</a> | <a href="?p=referer3" mce_href="?p=referer3">referer3</a><hr /><?phpecho '[' . $_SERVER['HTTP_REFERER'] . ']';?>
URL バーに「http://localhost/hellophp/referer.php」と入力すると、実行結果は次のようになります:
[]
クリックしてRefer1に接続、実行結果は次のとおりです:
[http://localhost/hellophp/referer.php]
クリックしてRefer2に接続、実行結果は次のとおりです:
[http://localhost/hellophp/referer.php?p=referer1]
クリックしてRefer3に接続、実行結果は次のとおりです:
[http://localhost/hellophp/referer.php?p=referer2]
クリックして接続 Refer1、実行結果は次のようになります:
[http://localhost/hellophp/referer.php?p=referer3]
URL バーに http://localhost/hellophp/referer.php?p=referer2 と入力すると、実行結果は次のようになります:
[]
上記のプロセスから次の結論を導き出すことができます: URL バーから WEB サーバーに対してリクエストが行われるとき、$_SERVER['HTTP_REFERER'] の値は空です。リンクから WEB サーバーにアクセスする場合、$_SERVER['HTTP_REFERER'] の値はリクエストの URL です。