【问题标题】:Keeping php sessions after browser is closed浏览器关闭后保持php会话
【发布时间】:2011-12-17 16:54:49
【问题描述】:

我注意到,当我使用 tumblr 时,我永远不必登录(除非我事先明确退出)。即使我关闭了浏览器,关闭了我的电脑,如果我访问 tumblr.com 一个月没有访问过 tumblr,我发现我仍然登录。

他们是如何做到这一点的?只是将 session_set_cookie_params 设置为一个月之类的吗?

【问题讨论】:

    标签: php session cookies session-variables


    【解决方案1】:

    他们使用 cookie,过期时间在未来。

    setcookie('username','bob',time()+3600*24*7);
    

    这将创建 7 天的用户名 cookie。 请注意,如果您清除 cookie,您将退出所有网站。

    【讨论】:

    • 另外,需要注意的是:$_SESSION只是一个cookie,没有'expire'参数为0。你可以设置一个过期时间为0的cookie,当你关闭浏览器时,cookie被删除.
    • 所以基本上我在 php.ini 中将 session.cookie_lifetime 设置为 604800 以使我的会话 cookie 持续 1 周?还是 2419200 持续一个月?
    • 您确实应该将 session.cookie 保留为默认值,因为“会话”通常在浏览器关闭时完成。如果可能,请使用标准 cookie 来跟踪您的登录。 php.net/manual/en/function.setcookie.php
    • 非常小心 - (记录在案)在进行这样的会话时存在巨大的安全漏洞,任何用户都可以设置自己的 cookie 并以用户身份登录,而无需每次输入密码。 php $_SESSION 不会在用户计算机上保存任何数据(除了难以复制的标识符)。如果您的服务器专用于特定的 Web 服务,无论如何都要使用 $_SESSION。
    【解决方案2】:

    他们正在使用 cookie 进行此操作。清除您的 cookie,您必须重新登录。

    【讨论】:

      猜你喜欢
      • 2012-04-11
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2011-02-23
      • 2014-08-15
      相关资源
      最近更新 更多