如何检查访问者重定向的链接

时间:2017-03-20 10:37:27

标签: php html

我想查看每位访问者的来源,并将这些信息存储在Cookie中。

这个想法是:当有人去谷歌搜索即维基百科并点击第一个结果时,这就是谷歌生成的

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&sqi=2&ved=0ahUKEwiB8aaX8eTSAhWCNJoKHbYqDFsQFggnMAE&url=https%3A%2F%2Fwww.wikipedia.org%2F&usg=AFQjCNFoqWBYY9IYRUE6eu9l7l73Wk5wYw&bvm=bv.149760088,d.bGs

我不知道在PHP中是否可以回应“Google.com”作为此重定向的来源。

2 个答案:

答案 0 :(得分:3)

如果存在,

$_SERVER['HTTP_REFERER']会为您提供引荐网页的网址。如果直接访问(来自书签或用户直接输入网址),您将无法获得任何内容。

在PHP中使用HTTP_REFERER

PHP中的HTTP REFERER存储在$ _SERVER超级全局中,可以从PHP代码中的任何位置引用,如下例所示,它只是将其写入浏览器:

echo $_SERVER['HTTP_REFERER'];

如果已设置HTTP_REFERER,则会显示它。如果不是那么你就不会看到任何东西。如果未设置,并且您将错误报告设置为显示通知,则会发现此类错误:

注意:未定义的索引:第3行的/path/to/filename.php中的HTTP_REFERER 为了防止在通知开启时出现此错误(我总是在通知的情况下开发),您可以这样做:

if(isset($_SERVER['HTTP_REFERER']))
{
    echo $_SERVER['HTTP_REFERER'];
}

为了使域名成为引荐来源,您可以使用PHP的 parse_url()功能: 例如:

$url = '//www.example.com/path?name=shakti';
var_dump(parse_url($url));

您将获得输出:

array(3) {
  ["host"]=>
  string(15) "www.example.com"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(17) "name=shakti"
}

答案 1 :(得分:0)

使用$ _SERVER [' HTTP_REFERER'],这将返回用户重定向的最后一个访问过的网址