我正在使用函数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,请与开发人员工具或浏览器的任何等效工具进行检查。