【问题标题】:Session Cookie Timing and Usage会话 Cookie 时间和使用
【发布时间】:2013-09-19 18:22:57
【问题描述】:
setcookie("userloggedin",$username);
setcookie("userloggedin",$username, time()+(60 * 20));

以上是用户登录时使用的 cookie,现在有几个用户告诉我,他们在使用过程中不断被从网站中删除。我很困惑为什么,我的 cookie 设置不正确?我的理解是设置为 20 分钟。

这是运行 20 分钟然后结束,还是像我相信的那样运行,每次我在其他页面上调用 cookie 时,再次重置为 20 分钟。

【问题讨论】:

  • echo $_COOKIE['userloggedin']; 不会重置,但每次调用第二行时都会重置。

标签: php session-cookies


【解决方案1】:

你确定你打电话给他们,而不仅仅是在登录时。更有可能您只有在他们登录时才拥有它,然后他们被启动然后重新登录以重置 cookie。

如果您调用它们,它应该可以工作,它每次都会覆盖它们并将它们保持在 20 分钟。也许显示他们被调用的代码?

你应该只需要

setcookie("userloggedin",$username, time()+(60 * 20));

【讨论】:

    【解决方案2】:

    也许问题与 PHP 会话有关。 24分钟后即可销毁。 尝试将其添加到您的 .htaccess 文件中:

    php_value session.gc_maxlifetime 3600
    

    【讨论】:

    • 我已经调整了。现在等待游戏
    【解决方案3】:

    基本上,第一条语句将在浏览器打开的时间内创建 cookie。第二个语句是告诉 Apache 在 20 分钟后使 cookie 过期。这就是您的用户被注销的原因。

    【讨论】:

    • 当...session_start(); if(isset($_SESSION['SESS_USERNAME'])) { $username = $_SESSION["SESS_USERNAME"]; } 转到另一个页面时,它是否不会再次开始 20 分钟
    • session_start() 用于在页面上启动会话,但是当您使用 cookie 时,此语句将不起作用。
    猜你喜欢
    • 2013-07-22
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    相关资源
    最近更新 更多