【问题标题】:How to make user session go on for 24 hours?如何让用户会话持续 24 小时?
【发布时间】:2011-09-19 19:23:23
【问题描述】:

我弄乱了我的 apache 和 php.ini 文件,我网站的用户仍然抱怨网站在很短的时间后或每次他们关闭并打开同一个浏览器时将他们注销。

我正在运行 Apache 和 PHP。

我应该进行哪些设置才能使用户会话持续 24 小时,这样他们就不必每次都重新登录?

谢谢, 亚历克斯

【问题讨论】:

    标签: php apache session web-applications


    【解决方案1】:

    在 php.ini 中,设置:

    ; 24 hour session cookie
    session.cookie_lifetime = 86400
    
    ; Prevent server from cleaning up session
    ; Some value higher than the cookie lifetime
    session.gc_maxlifetime = 200000 
    

    【讨论】:

    • 谢谢,顺便说一下,更改值后,我必须重新启动apache服务器吗?
    • @Genadinik 是的,您需要重新启动 Apache。
    【解决方案2】:

    奇怪。会话应该保持相当长的时间。 尝试检查您的代码是否有任何意外的 session_destroy()s。

    如果这不起作用,那么可以尝试使用 cookie:

    setcookie(name, value, expire); 
    

    因此,要在 PHP 中设置 cookie 变量,您可以简单地使用

    <?php
        setcookie("MyCookie", "MyValue", time()+60*60*24); 
    ?>
    

    过期值以秒为单位。使用上面的代码,您将能够设置一个名为“MyCookie”的 cookie,其值为“MyValue”并持续 24 小时。

    要检索此 cookie 的值,您可以使用

    <?php
        print($_COOKIE['MyValue']);
    ?>
    

    请注意,必须在调用标记之前设置 cookie。

    如果 cookie 也不起作用,那么可能是您的 php.ini 有问题 如果 cookie 不起作用,您可以发布您的 php.ini 吗?

    希望这会有所帮助!

    【讨论】:

    • 我可能弄错了,但我没有在我的代码中明确设置 cookie。我只是用用户信息设置会话变量。我是否还应该设置 cookie 来跟踪用户的会话?
    • 不,不要那样做。您应该使用会话或 cookie,而不是同时使用两者。否则,它会变得混乱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    相关资源
    最近更新 更多