15

ブラウザがヘッダー情報をサーバーに送信するとき、$_SERVER['HTTP_REFERER']前のページの URL を正しく取得する必要がありますか?

$_SERVER['HTTP_REFERER']ヘッダー情報がサーバーに送信されない場合、から何が返されますか? 空文字列? 間違い?ヌル?また... ?

4

3 に答える 3

16

HTTP リファラー要求ヘッダーが送信され$_SERVER['HTTP_REFERER']ない場合、空の文字列である可能性がありますが、おそらく設定されていません。この場合に設定されるかどうかは、サーバーに依存する可能性があります。

すべての HTTP 要求ヘッダーと同様に、以下を読むときにその存在を確認してください。

$httpReferer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
于 2012-12-19T08:32:05.140 に答える
4

$_SERVER['HTTP_REFERER']ユーザーブラウザの特定の設定が壊れる可能性があるため、実際には信頼できません。ただし、はい、以前の URL を含める必要があり、サーバーの構成に応じて、ヘッダーが送信されない場合は空の文字列または NULL を返します。

于 2012-12-19T08:32:03.407 に答える
0

$_SERVER はグローバル配列変数であり、リファラー値はキー HTTP_REFERER を持つ配列の要素です。ブラウザからリファラー ヘッダーが送信されない場合、その要素は単に配列から欠落しています。array_key_existsを使用して、配列に要素があるかどうかを確認できます。この場合:

array_key_exists('HTTP_REFERER', $_SERVER)

于 2012-12-19T08:40:04.793 に答える