【问题标题】:cakephp session timeout not workingcakephp会话超时不起作用
【发布时间】:2015-01-13 06:49:16
【问题描述】:

我有 cakephp 网站,我遇到的问题是在闲置大约 >= 1 小时后它会自动注销
所以我用谷歌搜索延长超时时间,我在core.php 中写了以下内容

    Configure::write('Session', array(
        'defaults' => 'php',
        'timeout'  => 28800,  // 8 hours.
        )
    );

即使在空闲时间少于 8 小时后,我也希望保持登录用户的登录状态
但这不起作用
我该如何解决这个问题?

【问题讨论】:

  • 您可以使用cookie来保存和检索用户的详细信息

标签: session cakephp timeout


【解决方案1】:

根据 CakePHP 手册,Session.timeout 选项的单位是“分钟”,所以 8 小时应该是 60*8=480

关于设置不起作用,我想也许您可以尝试清理 cakePHP 缓存文件/重新启动 Web 服务器或将调试级别更改为 2 以进行故障排除?

CakePHP 2.0 manual sessions

【讨论】:

  • 我这样做了,但在大约 30 分钟后仍将我注销
  • 你检查过你的 php.ini session.gc-maxlifetime 参数吗?如果您使用的是默认 php 会话,我想知道 cakephp 是否可以覆盖 php.ini 设置。 php 清理会话文件的默认值为 1440 秒,大约 24 分钟。 php.net/manual/en/…
【解决方案2】:

可能您使用的是 CakePHP 3,这就是您遇到此问题的原因。会话超时在 CakePHP 3 中不起作用,您可以使用 cookie_lifetime,请检查https://github.com/cakephp/cakephp/issues/5664

【讨论】:

  • 可以通过在cookie_lifetime 使用上指导 OP 来改进您的答案。
  • 这将增加 cookie 过期时间而不是会话超时时间...
【解决方案3】:

我在 CakePHP 1.3 中遇到了同样的问题

问题在于 CakePHP 使用的是 php.ini 中定义的设置,而不是我在 core.php 中定义的设置

所以我不得不更改 core.php:

Configure::write('Session.save', 'php');

Configure::write('Session.save', 'cake');

它就像一个魅力!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-02
    • 2013-11-19
    • 2014-12-05
    • 2013-12-19
    • 2016-01-21
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多