在浏览器关闭并重新打开后,在php中无法读取cookie值

时间:2014-10-07 21:54:54

标签: php cookies setcookie undefined-index

我试图找出与setcookie()和$ _COOKIE []有关的isset()和empty()。但是我在途中遇到了障碍。

这是我的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 能够通过setcookie()读取在 test.php 中设置的$ _COOKIE []变量。 (尽管如预期的那样,test.php必须在test.php中输出cookie值之前刷新一次。)

但是,如果我关闭浏览器并重新打开它,然后只运行 test1.php ,我会在$ _COOKIE ['name1']的name1上收到“未定义索引”通知。< / p>

为什么不能 test1.php 选择在浏览器关闭之前定义的$ _COOKIE变量? cookie仍应存储在计算机中。关闭并重新打开浏览器后,为什么不能从中提取cookie值?

2 个答案:

答案 0 :(得分:1)

回答我自己的问题。

感谢@Dagon尝试使用其他浏览器。它适用于其他浏览器(Firefox)。它在我的Chrome浏览器中无法正常工作(我怀疑我在Chrome上有一些反cookie扩展程序正在删除Cookie - 或者类似的东西)。

答案 1 :(得分:-1)

你不需要isset()就像

一样简单
if ($_COOKIE['name1']) {