php中的引荐网址

时间:2010-01-15 06:13:27

标签: php

所以我试图获取访问者来自的页面。我将此代码插入到php文件中,我试图查看该页面的URL,但它无法正常工作,有什么建议吗?

<?php 

  $ref = getenv("HTTP_REFERER"); 
  echo $ref; 

?>

(在一些答案之后加上这个) 我也试过

print $_SERVER["HTTP_REFERER"];

这不起作用

在我多次更新网站后,它工作了,不知道为什么首先出现问题,不管怎么说谢谢:)

8 个答案:

答案 0 :(得分:23)

您是否尝试过访问$_SERVER超级全球?

print $_SERVER["HTTP_REFERER"];

答案 1 :(得分:4)

$ _ SERVER ['HTTP_REFERER']是访问此信息的最佳方式。

根据您对其他回复的评论:

  1. 你真的来自某个地方吗?如果刷新浏览器,则可能不会发送此值。因此,请确保您的浏览器正在发送标题。如果您将此脚本放在公共URL上,我将很乐意将其签出并验证。
  2. 你应该真正打开所有错误。如果未发送标头并且您仍然访问它,PHP将发出E_NOTICE。如果您正在调试代码,则应打开所有错误消息并确保没有E_NOTICE或更糟。

答案 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)

如果它作为CGI脚本运行,则使用

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修改为功能。简而言之,它真的不可信任