还要注意,$HTTP_REFERER 中显示的 URL 不总是用户点击以调用 PHP 脚本的网页的 URL。
它可能改为是您自己网站上的一个文档,该文档包含一个 HTML 元素,其一个属性引用了该脚本。还要注意,当前页面片段(#anchor)可能会与 URL 一起传输或不传输,具体取决于浏览器。
示例
<FRAME src="your-page-script.php"8>
<IMAGE src="your-image-script.php">
在这种情况下,浏览器应该传输容器文档的 URL,但有些浏览器仍然坚持使用浏览器历史记录中的先前文档,这可能会导致在用户返回到引用您的脚本的文档时发送不同的 $HTTP_REFERER 值。如果您想确保发送实际的当前文档或历史记录中的先前文档,请使用客户端 JavaScript 将其发送到您的脚本
<SCRIPT language="JavaScript"><!--
document.writeln('<FRAME src="your-page-script.php?js=1&ref=' +
document.location + '">');
--></SCRIPT><NOSCRIPT>
<FRAME src="your-page-script.php?js=0">
</NOSCRIPT>
然后检查页面脚本中 $js 的值,以便在远程用户代理不支持客户端脚本(例如大多数索引/扫描机器人、某些旧的或特殊的简化浏览器或用户禁用了 JavaScript 的浏览器)时生成相应的内容。