将 Cookie Expire 与 IF 和 ELSE PHP 一起使用,echo 在 ELSE 上不起作用

Using Cookie Expire with IF and ELSE PHP, echo not working on ELSE

为什么?

我正在尝试使用我的 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 set" 并且永远不会回显 "cookie not set",感谢您的提前帮助。

你看到这里的!了吗?

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 的 URL 上,请确保使用 / 设置您的 setcookie 以指示整个域,而不仅仅是/path/,例如:

$value = 'adwords-visit';

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