HTTP_REFERER在IE7下不工作
一般情况下在PHP里,我们可以通过HTTP_REFERER环境变量获得用户是从那个网页进入当前页面的(也有人称之为“来路”),使用方法为:
<?phpecho getenv("HTTP_REFERER");//ORecho $ENV{'HTTP_REFERER'};?>
但是,HTTP_REFERER并不是万无一失的,因为有些浏览器在进入新页面时并不会送出这个变量。这几天公司的网站在增加在线咨询功能,为了更好回答用户碰到的问题,我们想知道用户是从那个页面进入在线咨询上的。当用户点击页面上的在线咨询按钮后会打开一个用户信息表单,这一步我用到HTTP_REFERFER把用户来路网址写入在表单,做为一个隐含值;当用户填好相关信息提交表单后这个隐含值被送给聊天引擎,这样客服人员就可以知道用户是从哪里进入在线咨询了。这种方法在Firefox下工作的很好,但是这IE7下却不工作。没办法,只好改用Javascript在用户点击按钮时,把来路网址作为一个参数传递给PHP文件。具体代码如下,
HTML/Javascript代码:
<a href="#" onClick="window.open(\'/chat/chat.php?di=24395&ref='+location.href+'\',\'custclient\',\'width=500,height=470,scrollbars=0\');return false;"><img src="images/livechattile_on_rtnav.gif" border="0"></a>
注意:在调用chat.php时,当前网址location.href被当成一个参数。另外值得一提的是单引号内javascript变量的写法,必须使用 '+location.href+' ,而不是直接插入location.href。
PHP代码:
//$ref = getenv("HTTP_REFERER");//getenv在IE7下行不通,所以改用$_GET$ref = ($_GET['ref'])? $_GET['ref'] : "";
标签: Javascript, PHP



0 条评论:
发表评论
指向此帖子的链接: