我有一個客戶端希望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');
不起作用,生產- 沒有任何錯誤,它只是保存了錯誤的引用者,
- 這個確切的代碼已經工作了1天前,現在它不,並且據我所知,沒有任何更改!
編輯: 我已經從xmlrpc.php $_COOKIE = array();
一切$_COOKIE
變量和刪除條目,它的工作。看起來wordpress在涉及到$_SESSION
時有一些奇怪的邏輯。
做到這一點:'回聲$ refererURL'來驗證引用者確實不是'web' –