Не могу прочитать значение 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']) {