IF ELSE语句中的PHP cookie设置

时间:2015-02-09 20:43:22

标签: php if-statement cookies

我有一些PHP代码检查HTTP Referer并相应地设置一批cookie,它应该检测HTTP引用者是什么,只设置cookie来自外部源,所以不在当前域。现在它工作并设置我从外部域点击时的cookie,但是当我点击任何内部网站链接所有的cookie(除了日期设置自己空白.PHP不是我的母语所以任何帮助将是理解?

我的代码如下所示:

$CheckURL = substr($_SERVER[HTTP_REFERER],7,21);
if($CheckURL <> "www.sitesithere.co.uk" ) {

// external link so lets get the data
setcookie("XX_HTTP_First_2PHP", $varRefererCheck, time() + (86400 * 30), "/");
setcookie("XX_Source_First_2PHP", $varSource, time() + (86400 * 30), "/");
setcookie("XX_Medium_First_2PHP", $varMedium, time() + (86400 * 30), "/");
setcookie("XX_Campaign_First_2PHP", $varCampaign, time() + (86400 * 30), "/");
setcookie("XX_GCLID_First_2PHP", $vargclid, time() + (86400 * 30), "/");
setcookie("XX_First_Date_2PHP", date('l jS \of F Y h:i:s A'), time() + (86400 * 30), "/");
} else {
// Internal link do nothing!

}

1 个答案:

答案 0 :(得分:0)

一些事情:

  • 首先,在HTTP_REFERER周围加上引号,否则它会认为你使用的是常量,而不是文字字符串
  • 其次,<>不是在PHP中检查“不等于”的方法。相反,请使用!=运算符
  • 第三,HTTP_REFERER不是处理这个问题的好方法。来自php.net:

      

    将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能。简而言之,它无法真正被信任。

  •