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']);
コードによると、ユーザーの出身地に応じて3つの異なるリファラーを取得する必要がありますが、常に「Web」(別名)を取得しています。リファラーが指定されていません。
私は何が間違っているのですか?
そして明確にするために:
session_start()
header.phpの前に実行されていません、add_action( 'init', 'session_start' );
動作しません、- エラーは発生せず、間違ったリファラーを保存するだけです。
- この正確なコードは1日前に機能していましたが、現在は機能していません。私が知る限り、変更は加えられていません。
編集:
私はすべてを$_COOKIE
変数に移動し、xmlrpc.phpからエントリを削除しましたが、機能$_COOKIE = array();
しています。ワードプレスには、ということになると奇妙な論理があるよう$_SESSION
です。