我有一个客户希望url referer能够通过联系电子邮件发送。这已经成功并突然停了一夜,没有线索是什么问题。
可悲的是,平台是Wordpress。
这在header.php中:
if(!session_id()){
//session_destroy();
session_start();
}
if(!isset($_SESSION['referer'])){
if(isset($_SERVER['HTTP_REFERER'])&&!empty($_SERVER['HTTP_REFERER'])){
$ref=strtolower($_SERVER['HTTP_REFERER']);
if(strpos($ref,'facebook')!==false){$_SESSION['referer']="Facebook";$_SESSION['refererURL']=$ref;}
elseif(strpos($ref,'google')!==false){$_SESSION['referer']="Google";$_SESSION['refererURL']=$ref;}
else{$_SESSION['referer']="Web";$_SESSION['refererURL']=$ref;}
}
}
这是我的联系方式-us.php:
$referer=trim($_SESSION['referer']);
$refererURL=trim($_SESSION['refererURL']);
根据代码,我应该根据用户的来源获得三个不同的引用,但我不断得到“Web”。没有指定参考者。
我做错了什么?
并澄清:
session_start()
尚未在header.php之前运行,add_action( 'init', 'session_start' );
不起作用, 修改
我已将所有内容移至$_COOKIE
变量并从xmlrpc.php $_COOKIE = array();
中删除了条目,并且它正在运行。看来wordpress在$_SESSION
时有一些奇怪的逻辑。
答案 0 :(得分:1)
检查服务器配置。可能会发生服务器上的php版本在没有暗示的情况下更新,这会导致关闭全局变量。
您可以通过简单地上传包含以下代码的php文件来检查
<?php
phpinfo();
?>
编辑: 请参考以下链接 http://php.net/manual/en/reserved.variables.php