使用带有IF和ELSE PHP的Cookie Expire,echo不能用于ELSE

时间:2018-02-14 13:17:56

标签: php if-statement cookies setcookie

为什么?

我正在尝试使用我的WordPress网站设置Adword广告系列,非常简单,但我希望能够根据他们使用AdWords或Bing / Google SERPS访问该网站来切换联系表单。

所以我们的想法是,如果他们访问https://example.com/landing-page/,他们就会到达一个页面,其中包含不同的联系电话和电子邮件表单,其中有一个标题表明他们来自Adwords,都是直接的,但是,如果他们点击了菜单栏远离着陆页,它们将获得标准数字和标准电子邮件表格,这使得跟踪过程更加困难。

设置临时Cookie

因此,通过使用自定义WordPress page template files,当访问者访问目标网页时,它会使用以下内容设置Cookie:

<?php
    // 60 Seconds, live environment set to 6000 (1 hour)
    $date_of_expiry = time() + 60 ;
    setcookie( "adwords-customer", "adwords-visit", $date_of_expiry ); 
?>

检查Cookie并执行A或B

然后在整个网站的其余部分(不在登录页面上),它将检查cookie是否存在,如果存在,它会执行A,如果不存在,则执行B,这是代码:

<?php 
    if(!isset($_COOKIE['adwords-customer']) || ($_COOKIE['adwords-customer'] != 'true')){
        echo "cookie set";
    } else {
        echo "cookie not set";
    }
?>

问题

结果总是“cookie设置”,并且永远不会回应“cookie not set”,感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:2)

你在这里看到!

if(!isset($_COOKIE['adwords-customer']) || ($_COOKIE['adwords-customer'] != 'true')){
   ^
    echo "cookie set";
} else {
    echo "cookie not set";
}

这意味着你要检查它是否未设置,以便删除或反转回声。

!= 'true'确保您不会检查布尔值。如果是,请删除引号。

尝试使用此代码!

if(isset($_COOKIE['adwords-customer']) && ($_COOKIE['adwords-customer'] == true)){
    echo "cookie set";
} else {
    echo "cookie not set";
}

如果您发现它现在有效,但仅限于设置Cookie的网址,请确保使用setcookie设置/以指示整个域,而不仅仅是/path/ ,例如:

$value = 'adwords-visit';

setcookie("adwords-customer", $value);
setcookie("adwords-customer", $value, time()+60);
setcookie("adwords-customer", $value, time()+60, "/");