WebサイトAに1つのリンクがあり、リンクをクリックするとWebサイトBにリダイレクトされるとします。ウェブサイトAは、ブログ、記事、またはソーシャルブックマークサイトの場合があります。WebサイトAのURLを取得する方法を知る必要があります。WebサイトBを所有しています。したがって、WebサイトBにPHPスクリプトを記述して、WebサイトAのURLに関する情報を取得する必要があります。他のプログラミング言語についても提案できます。あなたの答えはあまりにもありがたいです。
3 に答える
答えは $_SERVER['HTTP_REFERER'] です
Web ブラウザーがある Web サイトから別の Web サイトに移動したり、Web サイトのページ間を移動したりする場合、必要に応じて元の URL を渡すことができます。これは HTTP_REFERER と呼ばれ、この投稿では、この変数を PHP で使用する方法について説明します。
http リファラーの概要
ほとんどの Web ブラウザーはデフォルトで HTTP_REFERER 変数を渡しますが、多くの場合、この動作を変更して表示しないようにしたり、代わりに別のものを渡すことができます。ユーザーのコンピューターにインストールできるサードパーティのアンチスパイウェアなどのソフトウェアもあり、リファラー情報が Web サーバーに渡されるのを防ぎます。HTTP_REFERER は別のものに変更することもできるため、信頼することはできませんが、人々がどこから来たのかを調べるのに役立ちます。ログファイルの外観
次の例は、Apache Web サーバーのログ ファイルからのものです。
最初の例は、この Web サイトのホームページからこの特定の投稿にアクセスしたユーザーのログ エントリがどのように見えるかを示しています。ログ行の HTTP REFERER 部分を太字にしました (表示するには右にスクロールする必要があります)。1 192.168.1.10 - - [16/Apr/2008:16:12:36 +1200] "GET /php-http-referer-variable/ HTTP/1.1" 200 2014 "http://www.electrictoolbox.com/" Mozilla/5.0 (互換; Konqueror/3.5; Linux) KHTML/3.5.8 (Gecko など)"
2 番目の例は同じことを示していますが、 - で表されているため、ユーザーがアドレスを入力するか、ブックマークなどを使用して直接そのページに移動したか、ブラウザ オプションで HTTP REFERER をマスクしていることがわかります。またはサードパーティのツール。1 192.168.1.10 - - [16/Apr/2008:16:12:36 +1200] "GET /php-http-referer-variable/ HTTP/1.1" 200 2014 "-" Mozilla/5.0 (互換性; Konqueror/3.5 ; Linux) KHTML/3.5.8 (Gecko など)" PHP での HTTP_REFERER の使用
PHP の HTTP REFERER は $_SERVER スーパー グローバルに格納されており、次の例のように PHP コードのどこからでも参照できます。この例では、単にブラウザーに書き出すだけです: 1 echo $_SERVER['HTTP_REFERER']
HTTP_REFERER が設定されている場合は、それが表示されます。そうでない場合は、何も表示されません。設定されておらず、通知を表示するようにエラー報告を設定している場合は、代わりに次のようなエラーが表示されます: 1 Notice: Undefined index: HTTP_REFERER in /path/to/filename.php on line 3
通知がオンになっているときにこのエラーを防ぐには (私は常に通知をオンにして開発します)、次のようにします。3 }
別の方法は次のようなものです: 1 echo isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
の使用?演算子は、? の後に最初の値を返します。条件が true の場合は 2 番目の値、条件が false の場合は 2 番目の値。HTTP_REFERER の値を変数に割り当てたい場合に使用すると便利です。例: 1 $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; 結論
$_SERVER['HTTP_REFERER'] スーパーグローバル変数を使用して、ロギングなどの目的で HTTP_REFERER 変数を使用すると便利です。ただし、常に設定されているとは限らないことを知っておくことが重要です。そのため、通知をオンにしてプログラムする場合は、コードでこれを許可する必要があります。上記の例は、これを行う 1 つの方法を示しています。
使用する$_SERVER['HTTP_REFERER']
ユーザーエージェントを現在のページに参照させたページのアドレス(存在する場合)。これは、ユーザーエージェントによって設定されます。すべてのユーザーエージェントがこれを設定するわけではなく、HTTP_REFERERを機能として変更する機能を提供するものもあります。要するに、それは本当に信頼できるものではありません。
$_SERVER['HTTP_REFERER']
この場合、あなたのウェブサイトで使用してください
グッドプラクティスに従って、脱出してください$_SERVER["HTTP _REFERER"]
。