2012-06-01 55 views
0

我在LAMP服務器上使用CakePHP v2,並且如果用戶保持活動狀態,我似乎遇到會話不自動更新的問題。CakePHP會話不自動更新

換句話說,如果我將會話cookie設置爲3天,那麼用戶在3天后即使退出全部活動狀態也會退出。

起初,我認爲這可能是正確的行爲,但當我發佈一個關於它的問題時(Extending the life of the CakePHP Session Cookie),我得到的唯一答案往往表明我所經歷的bahaviour不是默認行爲。

所以,大概我在某個地方做錯了什麼。以下是我已經把APP /配置/ core.php中:

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

我只想餅乾留有效期爲3天,從用戶的最後一項活動。即使用戶一直處於活動狀態,此時正在執行的操作仍將在3天后過期。

回答

0

我想你需要create a custom session handler達到您的要求(只需在更新的時候讀它過期會話的。)

+0

感謝這個答覆。那麼我可以從你的答案中假設它絕對不應該這樣做嗎?上次我問這樣一個問題時,我導致我相信我的Cake安裝肯定有問題,因爲它不會這樣做。 – Joseph

+0

@Joseph Yeah你的蛋糕沒有什麼問題,我只需要定製你的會話。我相信它會在食譜中被提及,如果有這樣的會話自動更新機制。 – Young

+0

稍微多玩一會兒,它看起來像蛋糕* *做我想要的。我現在創建一個新的3天會議,'過期'時間戳是'1341546414'。然後,如果我在幾秒鐘後刷新頁面,時間戳記將更改爲'1341546435' - 因此它必須是導致會話過期的其他內容,而不是Cake。 – Joseph

1

把這個在你的後過濾行動的AppController:

$這 - >會話級>更新();

這會更新會話cookie。

(把它beforeFilter引起我的管理會話到期,如果我去前臺出於某種原因。)