0

我正在尝试增加 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 的会话超时)时间之后保持会话。会话statustest变量是在登录时创建的。它将被检索,直到session.timeout未达到。

我正在使用 cakephp v1.2

4

2 回答 2

0
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',
            )
        );
于 2013-03-06T05:58:11.243 回答
0

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

于 2013-10-01T12:45:29.710 回答