Неверное значение cookie при чтении в PHP - PullRequest
0 голосов
/ 21 сентября 2018

Я устанавливаю cookie, чтобы остановить определенные вещи, загружающиеся на мою страницу, если я являюсь администратором, и для этого я создаю cookie в php, читая его, а затем выводя значение через 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;
?>

Поэтому, когда я эхоout $admin_preview, я ожидаю, что true будет значением, но вместо этого я получаю 1.

Я использую Firefox 62.0, поэтому я не могу просмотреть фактическое значение cookie, но я явно сделал что-то не так.Есть идеи где или как?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Сделайте это вместо:

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

Это будет означать, что значение cookie «предварительного просмотра» будет использоваться в качестве строки вместо логического значения.В php логические слова (true / false) переводятся в 1 и 0 в этом порядке, вы должны явно указать, что значение должно использоваться в качестве строки, если вы этого хотите.

0 голосов
/ 21 сентября 2018

В PHP 1 означает true, вы можете проверить его, как если ($ admin_preview) //, который примет это как true,

также вы можете использовать фильтр var.

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

, также вы не ошибаетесь, чувак.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...