使用Cookie与IF和ELSE PHP一起过期,echo不处理ELSE

使用Cookie与IF和ELSE PHP一起过期,echo不处理ELSE,php,if-statement,cookies,setcookie,Php,If Statement,Cookies,Setcookie,为什么? 我正试图用我的WordPress网站建立一个Adword活动,这很简单,但我希望能够根据他们是否使用AdWords或Bing/GoogleSerps访问该网站来切换联系方式 因此,如果他们访问https://example.com/landing-page/他们将进入一个页面,页面上有不同的联系电话和电子邮件表单,标题表明他们来自Adwords,所有内容都是直接的,但是如果他们点击菜单栏离开登录页面,他们将得到标准的号码和标准的电子邮件表格,这使得跟踪过程有点困难 设置临时cookie

为什么?

我正试图用我的WordPress网站建立一个Adword活动,这很简单,但我希望能够根据他们是否使用AdWords或Bing/GoogleSerps访问该网站来切换联系方式

因此,如果他们访问
https://example.com/landing-page/
他们将进入一个页面,页面上有不同的联系电话和电子邮件表单,标题表明他们来自Adwords,所有内容都是直接的,但是如果他们点击菜单栏离开登录页面,他们将得到标准的号码和标准的电子邮件表格,这使得跟踪过程有点困难

设置临时cookie

因此,通过使用custom,当访问者访问登录页时,它会使用以下方法设置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上工作,那么请确保使用
/
设置您的
设置cookie
,以指示整个域,而不仅仅是
/path/
,例如:

$value = 'adwords-visit';

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

!='true“
您是否在此处检查字符串或布尔值?您需要在此处反转您的条件,这就是原因。我认为这是一个输入错误。您正在检查cookie是否不存在,但返回的是“cookie set”。可能你的cookie设置代码工作不正常。嗨,Funk,对不起,我是一个非常初学者,想知道拼写错误在哪里?这就是为什么我以wiki的形式发布。嗨,Funk,谢谢你,尝试过代码仍然得到相同的结果,始终是cookie设置,即使在没有cookies设置的新浏览器中,也要使用php的错误报告@SimonHayter和/或Wordpress方法。请确保您也不是缓存的受害者。我使用的浏览器是EDGE,我从未访问过登录页,但我在调试器中查看过,Cookie中没有任何内容。我已经使用.htaccess启用了php错误,并且可以确认,没有报告任何内容,我特意使用
来双重检查报告是否已启用并记录,这是。。。遗憾的是,我正在使用的代码没有任何错误。@FunkFortyNiner最终成功了,希望您不介意我编辑您的答案,这样对其他人的帮助就不仅仅是我了。