2010-11-07 39 views

回答

1

您必須將其轉換爲cookie,因爲在瀏覽器關閉時會自動刪除會話。見this

+0

看到這個http://www.captain.at/howto-php-sessions.php。無論設置了多久,瀏覽器關閉後會話都會被銷燬。這使它與cookies不同。如果我再犯錯,請糾正我,並引用您的來源。 – Skaty 2010-11-07 13:14:44

+0

是的,Skaty說的是要走的路。您需要將會話數據轉換爲Cookie數據。 – Ashok 2010-11-09 08:13:05

+1

技術上它已經是一個cookie了。當瀏覽器窗口關閉時,它會被丟棄,因爲cookie的生存期爲0秒。 – sholsinger 2010-11-11 00:36:57

0

當瀏覽器關閉時Cookie不會被破壞。

1

設置$this->Session->cookieLifeTime = $timeToLive;,其中$timeToLive是您希望會話持續的秒數。這是總長度,所以如果瀏覽器窗口關閉,它不會被刪除,但請注意,從瀏覽器關閉時開始,它是而非

+0

記錄在哪裏? – sholsinger 2010-11-11 00:29:55

+0

@sholsinger - 在我的答案中點擊示例代碼行。 – Iiridayn 2010-11-12 19:45:12

+0

我不得不說,這可能是最容易實現的。道具,michaelc。這並不意味着我認爲與源文件的鏈接是「文檔」。事實是,CakePHP的文檔沒有列出會話類的公共屬性,這是不幸的。 – sholsinger 2010-11-12 22:23:26

2

似乎有辦法通過重寫的配置值增加會話的生存時間。 (在PHP級別 - 通過CakePHP Manual)。使用下面的代碼,您可以將0更改爲希望會話生存的秒數。

2周
// Cookie is now destroyed when browser is closed, doesn't 
// persist for days as it does by default for security 
// low and medium 
ini_set('session.cookie_lifetime', 0); 

實施例:

ini_set('session.cookie_lifetime', 60 * 60 * 24 * 14); 

上面代碼段將被寫入到在app/config創建的配置文件。爲了讓CakePHP的閱讀在初始化該文件添加以下內容app/config/core.php

Configure::write('Session.save','my_session'); 

哪裏my_session是您的配置文件的名稱。

相關問題