【发布时间】:2016-02-13 17:33:09
【问题描述】:
我正在尝试根据用户来自的上一页返回一个值。
我用$_SERVER['HTTP_REFERER']查看了PHP,但不再支持。
我已经用
查看了 JavaScriptfunction sourcePrevious(){
if (document.referrer.search('https?://(.*)google.([^/?]*)') === 0) {
return 'Google';
} else if (document.referrer.search('https?://(.*)yahoo.([^/?]*)') === 0) {
return 'Yahoo';
} else if (document.referrer.search('https?://(.*)bing.([^/?]*)') === 0) {
return 'Bing';
}else if (document.referrer.search('https?://(.*)facebook.([^/?]*)') === 0) {
return 'Facebook';
}else {
return 'Other';
}
}
alert(sourcePrevious());
这在一定程度上有效,对于 Google、Yahoo 和 Facebook 它有效,但对于 Bing 和 Twitter 则不同。
任何人都可以为我指明执行此操作的方法的方向,或者让我知道如何让 JavaScript 函数适用于所有来源。
谢谢!
【问题讨论】:
-
它对我有用。我使用了 Bing,打开了随机页面,在控制台中
document.referrer.search('https?://(.*)bing.([^/?]*)')返回 0。 -
$_SERVER['HTTP_REFERER'] 不受支持?仅供参考,这不是真的。但并非所有用户代理都设置它。请添加您正在使用的浏览器和 PHP 版本。
-
感谢您这么快回来!我在 php.net 上找到了这个 'HTTP_REFERER' 将用户代理指向当前页面的页面地址(如果有的话)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 HTTP_REFERER 作为一个特性的能力。简而言之,它不能真正被信任。 Min 也为 twitter 和 bing 返回 0,所以我无法分离这些元素。
标签: javascript php url referrer