如果我是管理员用户,我将设置一个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的实际值,但是显然我做错了什么。任何想法在哪里或如何?
答案 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
你也没有做错老兄。