2013-02-13 124 views
0

我想增加cakephp应用程序中的会话生存期。我在登录页面有一个remember me复选框。在选中复选框时,我需要将会话时间延长至当前时间的1小时,并且登录后应用程序内的任何操作都需要将会话时间延长至1小时以上。如何增加cakephp中的会话生命时间?

我有用于登录的组件文件,所有操作都将在启动功能中输入。 我试图扩展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

+1

我认为这可以帮助ü http://stackoverflow.com/questions/3564217/auth-timeout-problems -with-cakephp – 2013-02-13 08:36:33

+0

提示:http://www.dereuromark.de/2012/02/02/more-persistent-sessions-in-cake2-x/#insight – mark 2013-07-31 07:51:59

回答

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', 
      ) 
     ); 
+1

首先,这是Cakephp ** v2的语法。 x **版本。我已经尝试了这些核心的变化,但没有成功。 – 2013-03-06 06:06:55