Невозможно прочитать файлы cookie в PHP - PullRequest
0 голосов
/ 26 мая 2020

Я изучаю PHP, и недавно я застрял при попытке изучить файлы cookie. Другими словами, я сделал то же самое, что и парень из учебника, но почему-то не могу повторить файлы cookie в состоянии if(isset()). Но когда я нажимаю Cookies in use в chrome, я ясно вижу, что повар ie был сохранен.

Мой код:

<?php
$name = "Jozef";
$age = 100;
$duration = time() + (60*60*24*7);
setcookie($name, $age, $duration, '/');

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Trying cookies</title>
</head>
<body>
    <?php 
        if(!empty($_COOKIE['name'])){
            $newName = $_COOKIE['name'];
            echo $newName;
        }
        else{
            echo "<br>nope";
        }
    ?>
</body>
</html>

На картинке ниже слева вы можете видеть, что первое условие не выполнялось, а второе - выполнено.

Picture showing that the cookie is already in use

Ответы [ 3 ]

1 голос
/ 26 мая 2020

Вы неправильно внедрили, посмотрите на пример ниже

<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
  echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
  echo "Cookie '" . $cookie_name . "' is set!<br>";
  echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
1 голос
/ 26 мая 2020

Вам нужно указать имя повара ie, а не только значение:

setcookie('name', $name, $duration, '/');

На втором изображении у вас есть повар ie с именем 'Jozef'. Я предполагаю, что вы хотели иметь «именного» повара ie со значением «Jozef». Верно?

Только тогда будет определено $_COOKIE['name'].

Надеюсь, это поможет.

Обновление:

Вы должны установить имя и возраст отдельно:

setcookie('name', $name, $duration, '/');
setcookie('age', $age, $duration, '/');
0 голосов
/ 26 мая 2020

Cook ie Syntex

setcookie(name, value, expire, path, domain, secure, httponly);

попробуйте этот

<?php
$name = "user";
$value = "Samy_tech";
$duration = time() + (86400 * 30);
setcookie($name, $value, $duration, "/");

if(!isset($_COOKIE[$name])) {
  echo "Cookie named '" . $name . "' is not set!";
} else {
    echo "<pre>";
  echo "Cookie '" . $name . "' is set!<br>";
  echo "Value is: " . $_COOKIE[$name];
}
?>

Результат

Cookie 'user' is set!
Value is: Samy_tech

Примечание: с помощью этого кода вы можете правильно создать своего повара ie и прочтите.

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