假设我的网站url被放在了互联网上的某个页面上,该页面可以是任何互联网上的内容,比如博客、orkut、yahoo,甚至stackoverflow等,然后有人点击了它并访问了我的网站。那么我们是否能够使用PHP知道访问者从哪个之前的URL来到了我的页面?
使用$_SERVER['HTTP_REFERER']
头部信息,但请注意,任何人都可以在任何时间篡改它,无论他们是否点击了链接。
$_SERVER['HTTP_REFERER']
是答案。
$_SERVER['HTTP_REFERER']
将给你不完整的URL。
如果您想要http://bawse.3owl.com/jayz__magna_carta_holy_grail.php
,$_SERVER['HTTP_REFERER']
只会给您http://bawse.3owl.com/
。
但是您可以为每个来源URL创建自己的链接。
例如:http://example.com?auth=holasite
在这个例子中,您的网站是:example.com
如果有人打开这个链接,它会为您提供auth变量的holasite值。
然后只需使用 $_GET['auth'] 就可以得到该变量。但是您应该有一个数据库来存储它,并进行授权。
像这样: $holasite = http://holasite.com (您也可以使用mysql..)
只需匹配它,就可以得到URL。
这种方法有点复杂,但它是有效的。这种方法非常适合推荐系统认证。但是,在站点名称的位置,您应该编写一个ID,并使用该ID进行操作。
基本上,我们使用$_SERVER['HTTP_REFERER']来获取我们网站的上一个URL,但这是浪费时间的,因为它只会给出半个URL。所以,获取先前URL的最佳方法是使用Javascript和Jquery。