所以我试图获取访问者来自的页面。我将此代码插入到php文件中,我试图查看该页面的URL,但它无法正常工作,有什么建议吗?
<?php
$ref = getenv("HTTP_REFERER");
echo $ref;
?>
(在一些答案之后加上这个) 我也试过
print $_SERVER["HTTP_REFERER"];
这不起作用
在我多次更新网站后,它工作了,不知道为什么首先出现问题,不管怎么说谢谢:)
答案 0 :(得分:23)
您是否尝试过访问$_SERVER
超级全球?
print $_SERVER["HTTP_REFERER"];
答案 1 :(得分:4)
$ _ SERVER ['HTTP_REFERER']是访问此信息的最佳方式。
根据您对其他回复的评论:
答案 2 :(得分:3)
也许是一个愚蠢的评论,但$_SERVER["HTTP_REFERER"]
仅在您使用超链接进入页面时才有效。
e.g。
/goto.html
<a href="refer.php">go to refer</a>
/refer.php
<?php
print "You entered using a link on ".$_SERVER["HTTP_REFERER"];
?>
如果您直接在浏览器中输入链接位置,则HTTP_REFERER不起作用。
答案 3 :(得分:2)
getenv()
。使用SAPI,您可以使用$_SERVER["HTTP_REFERER"]
。
答案 4 :(得分:2)
<?php
echo $_SERVER['HTTP_REFERER'];
?>
以上代码有效!但是,我的很多学生一开始觉得很难理解$_SERVER['HTTP_REFERER']
要求来自 链接 。
我向他们提供以下(已测试)代码(或“网页”)以进行演示。上面的代码位于底部。
显示-referer.php
<?php
if ( isset( $_SERVER['HTTP_REFERER'] ) ) {
$referer = $_SERVER['HTTP_REFERER'];
} else {
$referer = 'No Link - No Referer - Direct URL Entry';
}
echo $referer;
?>
<p>See the referer in action
<a href="show-referer.php">from this page!</a>
</p>
<?php
echo $_SERVER['HTTP_REFERER'];
?>
当您单击链接时,show-referer.php页面会链接到自身,这会导致浏览器生成HTTP_REFERER。
答案 5 :(得分:1)
$ref = $_SERVER['HTTP_REFERER'];
相关手册页:http://php.net/manual/en/reserved.variables.server.php
答案 6 :(得分:1)
如果你计算所有这些答案,你最终会看到:
<?php
if isset($_SERVER['HTTP_REFERER']) {
$ref = $_SERVER['HTTP_REFERER'];
}
else {
$ref = "Direct Entry";
}
?>
答案 7 :(得分:0)
再次阅读http://php.net/manual/en/reserved.variables.server.php: 使用HTTP_REFERER,有一条评论:
将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能。简而言之,它真的不可信任。