ISSET($_COOKIE) 不起作用


isset($_COOKIE) is not working

我正在使用函数set cookie来设置(id)cookie,如下所示:

$cookie_id = $insert_userid;
setcookie("id", $cookie_id, time() + 31556926, '/', 'www.example.com');

上面的代码工作正常。我正在使用火狐检查设置,正确的cookie在那里。现在,在我的网站上的其他页面上,我想检查cookie是否已设置。如果未设置 cookie,我将使用此代码进行重定向。无论是否设置了cookie,我都会以两种方式重定向。

<?php
if(isset($_COOKIE['id'])){
//do something.
}else{
header('Location: login.php');
}
    ?>

如何解决这个问题?

变量转储结果为:

array(4) { ["link"]=> string(43) "http://www.zzz.com/zzz" ["__unam"]=> string(30) "a5caeed-1385397a335-7fca86ad-2" ["PHPSESSID"]=> string(26) "6khzzzzzzzzjd51i6hamm0" ["id"]=> string(10) "zzzzzzzzzz" } 

更新:我没有从我装箱的同一页面检查cookie。

为了帮助找到问题,请尝试以下操作:

var_dump($_COOKIE['id']); exit;

把它放在if之前.理想情况下,您应该看到 cookie 的值。如果您看到NULL,则 cookie 未被传递。

如果未传递,请尝试var_dump($_COOKIE); exit;,看看是否获得数组,如果是,则是否有id密钥。

确保正在发送cookie,请与开发人员工具或浏览器的任何等效工具进行检查。