我正在使用函数集cookie来设置(id)cookie,如下所示:
$cookie_id = $insert_userid;
setcookie("id", $cookie_id, time() + 31556926, '/', 'www.example.com');
上面的代码工作正常。我正在用firefox检查设置,并且有正确的cookie。 现在在我的网站上的其他页面上,我想检查cookie是否已设置。 如果没有设置cookie,我正在使用此代码重定向。 我正在以两种方式重定向,但是设置或不设置cookie。
<?php
if(isset($_COOKIE['id'])){
//do something.
}else{
header('Location: login.php');
}
?>
如何解决此问题?
Var转储结果是:
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。
答案 0 :(得分:2)
要帮助找到问题,请尝试以下方法:
var_dump($_COOKIE['id']); exit;
把它放在if
之前。理想情况下,您应该看到cookie的值。如果您看到NULL
,则表示未传递Cookie。
如果没有通过,请尝试var_dump($_COOKIE); exit;
,看看你是否得到一个数组,如果是,那么是否有一个id
密钥。
确保正在发送cookie,请查看开发人员工具或您的浏览器的等效内容。