2013-09-25 24 views
0

我不确定执行此操作的方式是检查Google Analytics Cookie或以其他方式跟踪用户来自我的网站的位置。基本上我有一个带有隐藏字段的表单code="XY1"现在我需要为来自Facebook的人说插入不同的预设代码,因此脚本必须检查访问者来自哪里,然后将代码XF1分配给任何从FB和代码XT1任何来自Twitter等如何使用Javascript(或PHP)将值插入表单根据访问者推荐

将类似的捕捉?:

$referringPage = parse_url($_SERVER['HTTP_REFERER']); 
if (stristr($referringPage['host'], 'facebook.com')) 

这个PHP工作或这个JS

var ref = document.referrer; 

if (!ref.indexOf("facebook.com") != -1) { 
    document.write(...) 
} 

我不是当然,最好的办法是什么,做什么样的方法ds可以可靠地检查访问者的来源,所以任何帮助将不胜感激。

+0

HTTP_REFERER是浏览器设置,并非常不可靠 – 2013-09-25 21:32:13

回答

2

您可以使用$_SERVER['HTTP_REFERER'],但不能保证准确,甚至不存在。并非所有浏览器都会设置它,有些则允许您自己设置它。 Google Cookie不会包含任何网站历史记录,并且您无法检查浏览器历史记录,因此无法保证您的要求。

0

您可以使用jquery $ .test()方法尝试此选项。

$(function(){ 
    var referer=document.referrer, //option 1 
    //referer="<?php echo $_SERVER['HTTP_REFERER'];?>",//optional 2 
    XFB=/facebook.com/g, 
    XFT=/twitter.com/g, 
    checkF1=XFB.test(referer), 
    checkF2=XFT.test(referer); 
if(checkF1){ 
    var code= "XF1"; 
    $('#hiddenInput').attr('value','ref: '+referer) 

} 
else if(checkF2){ 
    var code= "XT1"; 
$('#hiddenInput').attr('value','ref: '+referer) 
} 
}); 
+0

这很有趣,是document.referrer大约为HTTP_REFERER准确的PHP?此外,这不会跟踪原始着陆页上的任何内容是否正确?我应该如何在这里合并cookie,以便在访问表单前访问者在网站上点击时脚本可以工作? – Epleroma

+0

是的,PHP和JavaScript都正常工作。要使用脚本跟踪所有页面,您需要将其包含在所有页面中。您不必拥有表单。您可以使用ajax将数据保存在.txt文件或数据库中。因此,让我们在每个页面上说一下你有这样的事情。请参阅我的下一条评论............... – ShapCyber

+0

$(function(){ localStorage.location = document.location; localStorage.referrer = document.referrer; //如您所知'localStorage的' 是在PHP同一$ _SESSION 变种 位置= localStorage.location, 引荐= localStorage.referrer, XFB =/facebook.com /克, XFT =/twitter.com /克, checkF1 = XFB 。测试(引荐), checkF2 = XFT.test(引荐); 如果(checkF1){风险代码= “XF1”;} 否则如果(checkF2){风险代码= “XT1”;} // 阿贾克斯去这里看下一个评论 // alert(location + referrer); //仅用于测试,确保ajax url有效 }); – ShapCyber