在PHP中读取时Cookie值不正确

时间:2018-09-21 12:08:17

标签: php cookies

如果我是管理员用户,我将设置一个cookie来阻止某些内容在我的页面上加载,为此,我正在php中创建一个cookie,读取它,然后通过php回显值。在我的页面上。

所以我的完整代码段是:

<?php
setcookie("preview", "true", time() - 3600); // Kills Existing
setcookie("preview", "true", time() + 3600); // Sets New
?>

-

<?php
if(isset($_COOKIE["preview"])){
$admin_preview = ($_COOKIE["preview"]);
}
else{
$admin_preview = "false";
}
?>

-

<?php
echo $admin_preview;
?>

因此,当我回显$admin_preview时,我期望true是值,但我却得到1

我正在使用Firefox 62.0,因此无法查看Cookie的实际值,但是显然我做错了什么。任何想法在哪里或如何?

2 个答案:

答案 0 :(得分:1)

改为执行此操作:

$admin_preview = var_export($_COOKIE["preview"], true);

这将说明“预览” cookie的值将用作字符串而不是布尔值。 用php布尔字(真/假)按该顺序转换为1和0,如果需要的话,您必须明确声明该值将用作字符串。

答案 1 :(得分:0)

在PHP 1中表示true,您可以像if($ admin_preview)//一样将其检查为真,

您还可以使用过滤器变量。

var_Dump(filter_var("TRUE", FILTER_VALIDATE_BOOLEAN));
//or
var_Dump(filter_var(1, FILTER_VALIDATE_BOOLEAN));

有关php中布尔值的更多信息,您可以检查http://php.net/manual/tr/language.types.boolean.php

你也没有做错老兄。