2016-07-27 46 views
2

由于业务需要,我需要在cakephp 2应用程序上定义一个非常大的会话时间。我定义它的core.php中的文件如下:会话超时在Cakephp 2中不起作用

Configure::write('Session', array(
    'defaults' => 'php', //defaults => php 
    'cookie' => 'cookie', 
    'timeout' => 4320 // 3 days 
)); 

我做了一个测试,以防万一2小时闲置我的对话被关闭,我每次点击一个按钮,我回到登录屏幕的时候,怎么能我有效地控制了我的会话时间?

+0

第一个故障排除步骤应该是验证过期时间和生成的cookie的其他属性。您应该能够在任何体面的浏览器中获取该信息。其他重要细节是您是否共享会话目录和应用程序域。 –

回答

3

使用此可能工作。它为我工作

core.php中

Configure::write('Session', array(
      'defaults' => 'php', 
      'timeout' => 259200, 
      'ini' => array(
       'session.gc_maxlifetime' => 259200 // 3 day 
      ) 
    )); 
+0

事实上'session.gc_maxlifetime'默认为'Configure :: read('Session')['timeout'] * 60'(前者在几分钟内,后者在几秒钟内)。 –

+0

谢谢,我试过这个选项,它按照我的预期工作。 – Vito

+0

很好的答案。它也为我工作 –