![](/img/trans.png)
[英]how to know from which URL the user has been redirected to a page in our site in php
[英]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.