2016-07-27 76 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

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