我正在努力增加cakepp应用程序的会话寿命。我在登录页面中有一个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
。
我使用的是cakehpv1.2.
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',
)
);
保持很高的会话超时不是一个好主意。如果您的要求只是让他记录更多的时间,那么请使用一些auto_login组件,如www.milesj.me/resources/script/auto-login