将 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, "/");
为什么?
我正在尝试使用我的 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, "/");