代码之家  ›  专栏  ›  技术社区  ›  josecash

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

  •  0
  • josecash  · 技术社区  · 12 年前

    我一直在尝试制作一个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']);
    }
    
    2 回复  |  直到 12 年前
        1
  •  0
  •   sectus    12 年前

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

        2
  •  0
  •   josecash    12 年前

    我的问题是,我试图在cookie中保存一个序列化对象$_SESSION['user'],该问题已得到解决:

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

    和检索时使用:

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