我有一个客户希望 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;}
}
}
这是我的contact-us.php:
$referer=trim($_SESSION['referer']);
$refererURL=trim($_SESSION['refererURL']);
根据代码,我应该根据用户来自哪里获得三个不同的引用,但我不断获得“Web”又名。没有指定推荐人。
我究竟做错了什么?
并澄清:
session_start()
在 header.php 之前没有运行过,add_action( 'init', 'session_start' );
不工作,- 没有产生错误,它只是保存了错误的引用,
- 这个确切的代码在 1 天前有效,现在它没有,据我所知,没有进行任何更改!
编辑:
我已将所有内容移至$_COOKIE
变量并从 xmlrpc.php 中删除了条目,$_COOKIE = array();
并且它正在工作。看来 wordpress 有一些奇怪的逻辑$_SESSION
。