【问题标题】:Session expires automatically after some amount of time in php会话在php中经过一段时间后自动过期
【发布时间】:2015-09-16 23:18:12
【问题描述】:

我正在开发一个简单的 php 网站,名为:http://www.dopanchat.com

在这个站点中,我使用 session 来开发登录系统,一切正常,但在一段时间后(例如,1 小时后),会话自动过期并且用户从我的站点注销。

不知道是服务器问题还是其他问题。

请帮我解决这个问题,你可以在这里查看:http://www.dopanchat.com

【问题讨论】:

  • 使用 cookie 管理用户会话足够长一天或更长时间
  • @MeeneshJain,另一种方法,但是当您想让用户自动重新登录时它是个好主意(例如记住我)

标签: php session authentication


【解决方案1】:

您可以通过如下调整php.ini文件来延长会话过期时间

session.gc_maxlifetime=86400 //1 day
session.gc_divisor=5000
session.gc_probability=1

gc_divisor 和 gc_probability 负责清理过期的 session 文件,通过以上配置 session 有效期为 1 天

【讨论】:

    【解决方案2】:

    试试这个:

    // Time in secondes before the session expires
    ini_set('session.gc_maxlifetime', 3600);
    
    // Time in secondes before the ID's session in the cookie expires
    session_set_cookie_params(3600);
    
    // Start session
    session_start();
    

    如果认为这行得通。告诉我它是否有效!

    (对不起,我的英语不好:D)

    【讨论】:

      【解决方案3】:

      延长会话超时是一种方法,但我不建议将其延长太多 :)

      相反,您的应用程序可以检测用户活动并相应地刷新会话到期时间。

      毕竟会话的超时时间是多少并不重要,用户会因为会话过期而失去身份验证。

      基本上,到期倒计时总是在用户最后一次操作之后开始,而不是从他/她登录到您的系统的那一刻开始。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-15
        • 2016-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多