我的cookie已设置但php无法读取它

时间:2013-02-24 13:48:16

标签: php cookies fixed

我一直在尝试制作一个cookie自动登录,但是虽然设置了cookie,但php无法读取它。我知道它已经设置好因为我可以用Cookie Monster看到它,我不知道出了什么问题...... 需要帮忙!这让我发疯了!

设置cookie的代码(我在任何HTML标记之前执行)

setcookie("autologin", $_SESSION['user'], time()+5184000, "/");

检索它的代码:

if (!isset($_SESSION['user']) && isset($_COOKIE['autologin'])) {
     $_SESSION['user']=$_COOKIE['autologin'];
}

更新:我不在同一个脚本中使用上面的代码。我登录,关闭浏览器,重新打开它并尝试获取cookie,cookie在Cookie Monster中但是php无法看到它。

FIX:我的问题是我试图在cookie中保存一个序列化对象$ _SESSION ['user'],它已被修复:

setcookie("autologin", base64_encode($_SESSION['user']), time()+5184000, "/");

并使用以下方式检索:

if (!isset($_SESSION['user']) && isset($_COOKIE['autologin'])) {
         $_SESSION['user']=base64_decode($_COOKIE['autologin']);
}

2 个答案:

答案 0 :(得分:0)

此Cookie可用on next page loading。在此页面中,您可以自己定义它。

答案 1 :(得分:0)

我的问题是我试图在cookie中保存一个序列化对象$ _SESSION ['user'],它已被修复:

setcookie("autologin", base64_encode($_SESSION['user']), time()+5184000, "/");

并使用以下方式检索:

if (!isset($_SESSION['user']) && isset($_COOKIE['autologin'])) {
         $_SESSION['user']=base64_decode($_COOKIE['autologin']);
}