2013-02-24 116 views
0

我一直在尝试做一个cookie自动登录,但虽然cookie已设置,但php无法读取它。我知道这是因为我可以用Cookie Monster看到它,我不知道有什么问题... 需要帮助!这让我疯狂!我的cookie已设置,但php无法读取它

代码设置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:我的问题是,我试图挽救一个序列化对象,$ _SESSION [ '用户'],在cookie中,它已得到修复与:

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

与检索:

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

回答

0

我的问题是,我试图挽救一个序列化对象,$ _SESSION [ '用户'],在cookie中,它已得到修复与:

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

与检索:

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

此cookie将可用on next page loading。在这个页面中你可以自己定义它。

+0

我不使用相同脚本中的代码。阅读更新以澄清,谢谢 – josecash 2013-02-24 17:00:20

+0

尝试在setCookie中定义您的域。并检查您设置和获取Cookie时使用相同的域名。 – sectus 2013-02-24 23:03:54

+0

好的,它是固定的。问题在于序列化,我试图在cookie中保存一个序列化的对象,出于任何原因,它没有得到它,所以我已经完成了序列化和base64_encode,现在没有问题了。 – josecash 2013-02-25 14:56:56