我有一个客户,希望url推荐人可以发送联系电子邮件。这已经起作用了,但一夜之间突然停止了,没有任何线索是什么问题。
遗憾的是,这个平台是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;}
}
}
,这是在我的contact-us。php:
$referer=trim($_SESSION['referer']);
$refererURL=trim($_SESSION['refererURL']);
根据代码,我应该得到三个不同的引用,这取决于用户来自哪里,但我不断得到"Web"aka。未指定引用对象
我做错了什么?
和澄清:
-
session_start()
未运行之前header.php, -
add_action( 'init', 'session_start' );
不工作, - 没有错误产生,它只是保存错误的引用,
- 这个确切的代码已经工作了1天前,现在它没有,据我所知,没有改变!
我已经将所有内容移动到$_COOKIE
变量,并从xmlrpc.php $_COOKIE = array();
中删除了条目,并且它正在工作。当涉及到$_SESSION
时,wordpress似乎有一些奇怪的逻辑。
检查服务器配置。这可能会发生,你的php版本在服务器可能已经更新没有通知,导致关闭全局变量。
你可以通过上传一个PHP文件来检查,其中包含以下代码
<?php
phpinfo();
?>
编辑:请参考以下链接http://php.net/manual/en/reserved.variables.php
http://php.net/manual/en/faq.using.php faq.register-globals