繁体   English   中英

如何检查访问者已从哪个链接重定向

[英]How to check from which link the visitor has been redirected

我想检查每个访问者的来源并将此信息存储在cookie中。

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

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”作为此重定向的来源。

$_SERVER['HTTP_REFERER']将为您提供引荐页面的URL(如果存在)。 如果直接访问(通过书签或用户直接输入URL),您将一无所获。

在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"
}

使用$ _SERVER ['HTTP_REFERER'],这将返回从中重定向用户的最后访问的URL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM