我想从referal网站上查看我的网站。我知道有许多程序,例如谷歌分析,但会告诉你我的taffic来自www.facebook.com。我想检查流量是否来自我指定的某些特定网址,例如www.facebook.com/myfanpage。
Befor我想到了php我用javascript尝试了几种方法,它们似乎没有像我想要的那样运行。对于我搜索php我只发现了这个功能。任何想法?
$_SERVER['HTTP_REFERER']
答案 0 :(得分:9)
$_SERVER['HTTP_REFERER']
将完全满足您的需求。
if (strstr($_SERVER['HTTP_REFERER'], 'facebook.com') !== false) {
// Facebook brought me to this page.
}
elseif (strstr($_SERVER['HTTP_REFERER'], 'google.com') !== false ) {
// Google brought me to this page.
}
答案 1 :(得分:3)
抱歉,我知道这已经晚了6个月,但如果网址是http://mydomain.com/?p=facebook.com,那么这也是真的吗?更好的方法是根据/然后提取第4部分,即引用引用网址。
$refererUrl = $_SERVER['HTTP_REFERER'];
$Exploded_URL = explode("/",$refererUrl);
$urlToCheck = $Exploded_URL[3].'.'.$Exploded_URL[4];
if($urlToCheck == 'facebook.com'){
/* From Facebook */
} elseif ($urlToCheck == 'google.com'){
/* From Google */
}
答案 2 :(得分:1)
$_SERVER['HTTP_REFERER']
应包含用户来自您网页的网址。这不是一个功能。这只是一个价值。所以你可以将它用于此目的。
但请注意,该值很容易被欺骗。 (它来自HTTP请求标头,用户可以发送他们想要的任何内容。)如果您只是为了自己的兴趣或其他任何方式收集统计数据,那么它应该是可接受的。但是,如果您尝试使用它来保护页面(例如,如果访问者来自某个网址,则仅显示某些内容),请忘掉它。
答案 3 :(得分:0)
您将只能检查HTTP请求是否具有referer
,这可以使用HTTP_REFERER
在PHP中实际访问。所以它完全由推荐网站负责。
Get original URL referer with PHP?
以上帖子也会对你有帮助。