ホームページ >バックエンド開発 >PHPチュートリアル >$_SERVER[\'HTTP_REFERER\'] が PHP に見つからないのはなぜですか?

$_SERVER[\'HTTP_REFERER\'] が PHP に見つからないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-27 20:29:13979ブラウズ

Why is My $_SERVER['HTTP_REFERER'] Missing in PHP?

リファラー データの欠落: $_SERVER['HTTP_REFERER']

PHP では、$_SERVER['HTTP_REFERER'] 変数が使用されますユーザーを現在のページに誘導したページの URL にアクセスします。ただし、この変数が見つからない場合があり、次のエラーが発生することがあります。

Notice: Undefined index: HTTP_REFERER

この問題は、いくつかの理由で発生する可能性があります。

Referr Spoofing

PHP ドキュメントで説明されているように、一部のユーザー エージェント (Web ブラウザー) では、ユーザーが HTTP_REFERER ヘッダーを変更できます。これは、参照元データの信頼性が低い可能性があり、完全に信頼すべきではないことを意味します。

サーバー構成

場合によっては、サーバー構成により HTTP_REFERER 変数が有効にならない場合があります。セット。これは、セキュリティ上の問題またはパフォーマンス上の考慮事項が原因である可能性があります。

問題の診断

問題を診断するには、HTTP_REFERER 変数が $_SERVER で定義されているかどうかを確認できます。配列を出力します:

print_r($_SERVER);

変数が未定義の場合、出力は次のようになります。キー 'HTTP_REFERER' が存在しないことを示します。

HTTP_REFERER の代替手段

$_SERVER['HTTP_REFERER'] が利用できないか信頼できない場合、いくつかの代替手段があります。リファラーを取得するメソッドdata:

  • XMLHttpRequest (AJAX): XMLHttpRequest オブジェクトを使用すると、クライアント側の JavaScript コードから HTTP リクエストを行うことができます。これを使用して、サーバーからリファラー データをフェッチできます。
  • JavaScript Navigator オブジェクト: Navigator オブジェクトは、リファラー情報を含む可能性のあるリファラー プロパティを提供します。ただし、このプロパティはスプーフィングの対象にもなります。
  • HTTP ヘッダーのデバッグ: Chrome DevTools などの一部のブラウザ開発者ツールを使用すると、Web ページの HTTP ヘッダーを検査できます。これにより、送信されているリファラー データに関する洞察が得られます。

結論

$_SERVER['HTTP_REFERER'] は便利な変数ですが、重要です。その限界と潜在的な信頼性の低さを認識する必要があります。代替方法を使用するか、サーバー構成を考慮することで、リファラー データが欠落している状況に効果的に対処できます。

以上が$_SERVER[\'HTTP_REFERER\'] が PHP に見つからないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。