0

我一直在尝试制作一个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 看不到它。

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

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

并检索:

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

2 回答 2

0

此 cookie 将在下一页加载时可用。在此页面中,您可以自己定义。

于 2013-02-24T13:53:36.043 回答
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']);
}
于 2013-05-14T20:00:24.093 回答