【问题标题】:How to increase the session life time in cakephp?如何增加 cakephp 中的会话寿命?
【发布时间】:2013-01-28 15:20:13
【问题描述】:

我正在尝试增加 cakephp 应用程序中的会话寿命。我在登录页面中有一个remember me 复选框。选中复选框时,我需要将会话时间延长到当前时间再延长 1 小时,登录后应用程序内的任何操作都需要将会话时间延长到 1 小时以上。

我有用于登录的组件文件,所有操作都将在启动功能中输入。 我试图延长session.cookie(CakePHP 的会话cookie) 的生命周期,但没有奏效。

function startup(&$controller) {
  /* First try */
  setcookie(Configure::read('Session.cookie'),$_COOKIE[Configure::read('Session.cookie')], time() + 3600, "/"); // Configure::read('Session.cookie') is 'CAKEPHP'.
  /* Second try */
  ini_set('session.gc_maxlifetime', 3600);
  /* Third try */
  session_set_cookie_params(time() + 3600);

  echo $this->Session->read('status').'   session  <br/>';
  echo $_SESSION['test'];
}   

但是在session.timeout(CakePHP 的会话超时)时间之后,所有这些都不会保持会话。会话status 和test 变量在登录时创建。它将被检索,直到未达到session.timeout。

我正在使用 cakephp v1.2。

【问题讨论】:

标签: php session cakephp cakephp-1.3 cakephp-1.2


【解决方案1】:
keep this in your core.php file 
Configure::write('Session', array(
        'defaults' => 'cake',
            'timeout'  => 14400,  // 4 hours 
            'cookieTimeout' => 14400, // 4 hours 
            'cookie' => 'Your Cookie Name',
            )
        );

【讨论】:

  • 首先这是 Cakephp v2.x 版本的语法。我已经尝试过在核心中进行这些更改,但没有成功。
【解决方案2】:

保持很高的会话超时不是一个好主意。如果您的要求只是让他保持更长的登录时间,请使用一些 auto_login 组件,例如www.milesj.me/resources/script/auto-login

【讨论】:

    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 2019-09-27
    • 2018-06-05
    • 2011-09-11
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    相关资源
    最近更新 更多