在我的工作中,我经常需要弄清楚我们的流量来自哪里。我们购买谷歌广告,并通过网址中的查询字符串来识别流量。 (mywebsite.com/?x="google_ad_group_4" )。找到引用页面(php)
如果有$ _GET ['x'],那么在每个页面上我都会包含一些会话,将$ _SESSION ['x']设置为$ _GET ['x']。如果没有$ _GET [“X”]我通过一些其他的选择,看看他们来自何处,并设置在$ _SESSION [“X”]:
$refurl = parse_url($_SERVER['HTTP_REFERER']);
$query = $refurl['query'];
parse_str($query, $result);
if (isset($result['q'])&& strstr($_SERVER['HTTP_REFERER'],'google')) {
$_SESSION['x'] = 'G-'.str_replace('\\"',"X",$result['q']);
}elseif (isset($result['p'])&& strstr($_SERVER['HTTP_REFERER'],'yahoo')) {
$_SESSION['x'] = 'Y-'.$result['p'];
//took out bing, aol, ask etc in the name of brevity
}else{
if ($refurl['host']){
$_SESSION['x'] = $_SESSION['x'].'_ref-'.$refurl['host'];
}
}
这样我可以追加搜索查询将用户带到该网站以及他们使用的搜索引擎。我记录传入的$ _SESSION ['x']的。
许多用户使用$ _SESSION ['x']的“_ref-mywebsite.com”,这是没有意义的,如果它们来自我自己的域名,他们已经有一个$ _SESSION ['x']设置在任何页面上。这是因为他们的浏览器安全性高吗?
我错过了一些明显的东西吗?有没有更聪明的方法来做到这一点?
我可以设置HTTP_REFERER任何东西(我剥夺它,每个请求),所以它没有意义。 – 2012-04-25 23:41:10