pg.*_*pg. 2 php session referrer
在工作中,我经常需要弄清楚我们的流量来自哪里。我们购买谷歌广告,流量通过网址中的查询字符串来识别。(mywebsite.com/?x="google_ad_group_4")。
在每个页面上,我都包含一些会话内容,如果 $_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'];
}
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以附加将用户带到该网站的搜索查询以及他们使用的搜索引擎。我记录传入的 $_SESSION['x']。
许多用户都带着“_ref-mywebsite.com”的 $_SESSION['x'] 进来,这是没有意义的,如果他们来自我自己的域,他们就已经有一个 $_SESSION[' x'] 设置在他们所在的任何页面上。这是因为他们的浏览器安全性很高还是什么?
我错过了一些明显的东西吗?有没有更聪明的方法来做到这一点?
你可以这样获取推荐人
echo $_SERVER['HTTP_REFERER'];
Run Code Online (Sandbox Code Playgroud)
但正如评论中提到的,它很容易被操纵。