Не могу прочитать значение cookie после закрытия и повторного открытия браузера, в php

Я пытался выяснить, как isset() и empty() связаны с setcookie() и $_COOKIE[]. Но я наткнулся на блокпост на пути.

Вот мой test.php

<?php

//initialize cookie
$expiry = time()+60*60*9000;
setcookie('name1', '4', $expiry, '/', '', '', TRUE);

if (isset ($_COOKIE['name1'])) {

    echo 'cookievalue ' . $_COOKIE['name1'];

} else {

    echo 'cookie value not set';

}


if (!empty ($_COOKIE['name1'])) {

    echo 'cookievalue ' . $_COOKIE['name1'];

} else {

    echo 'cookie value empty';

}

?>

Вот мой test1.php

<?php

if (isset ($_COOKIE['name1'])) {

    echo 'cookievalue ' . $_COOKIE['name1'];

} else {

    echo 'cookie value not set';

}


if (!empty ($_COOKIE['name1'])) {

    echo 'cookievalue ' . $_COOKIE['name1'];

} else {

    echo 'cookie value empty';

}

echo 'cookievalue ' . $_COOKIE['name1'];


?>

Когда я сначала загружаю test.php, а затем test1.php, кажется, все работает нормально. То есть test1.php может читать переменную $ _COOKIE [], которая была установлена ​​в test.php через setcookie(). (Хотя, как и ожидалось, test.php нужно было обновить один раз, прежде чем значения cookie были выведены в test.php.)

Однако, если я закрою браузер и снова открою его, а затем просто запущу test1.php, я получу уведомление "Неопределенный индекс" для name1 в $_COOKIE['name1'].

Почему test1.php не может получить переменную $ _COOKIE, определенную до закрытия браузера? Файл cookie все еще должен храниться на компьютере. Почему он не может извлечь значение cookie из него после закрытия и повторного открытия браузера?

2 ответа

Решение

Отвечая на мой собственный вопрос.

Благодаря @Dagon попробовал с помощью другого браузера. Работает в другом браузере (Firefox). Это не работало в моем браузере Chrome (я подозреваю, что у меня есть какое-то расширение против cookie, которое удаляет cookie - или что-то в этом роде).

Вам не нужно isset() так просто, как

if ($_COOKIE['name1']) {
Другие вопросы по тегам