我在哪裏可以設置默認會話過期時間爲WebsiteBaker?它默認在10分鐘內銷燬。我想在開發期間設置更多分鐘/小時,稍後想要更改爲默認或x MINS。會話在網站baker中過期
請幫我等待你的回覆。
感謝
我在哪裏可以設置默認會話過期時間爲WebsiteBaker?它默認在10分鐘內銷燬。我想在開發期間設置更多分鐘/小時,稍後想要更改爲默認或x MINS。會話在網站baker中過期
請幫我等待你的回覆。
感謝
我不知道網站麪包什麼,所以尋找到會話開始(在你的項目搜索在session_start()中的所有文件),然後在該行之前,你可以使用:
//first parameter expects the number of seconds session cookie should be kept by the
//browser , in our case 10 seconds
session_set_cookie_params(10);
或者另一種選擇,在你的網站上的貝克應用程序(index.php)添加該行,你應該準備好去。
注:如果會話cookie是由瀏覽器destroied那麼PHP將發出另一個會話ID,當你調用session_start();
,所以我們並不真的關心,如果上次會議仍然被認爲是活着/活躍在你的PHP腳本你將有一個空的$_SESSION
。 Aditionaly,您可以設置ini_set('session.gc-maxlifetime', 10);
,以便在將會話存儲在磁盤上時,以前的會話將被垃圾收集器刪除。
['session_cache_expire'](http://php.net/session_cache_expire)只是用於HTTP緩存。 – Gumbo 2011-01-05 08:12:43
更新了答案,謝謝你的支持。 – 2011-01-05 08:18:51
* session.gb \ _maxlifetime *不一定更好(請參閱http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes/1270960#1270960) 。 – Gumbo 2011-01-05 08:27:52
我假設你沒有改變它自己(否則我想你會記得你是如何做到的),10分鐘看起來像一個奇怪的默認值。我敢說你在一個共享服務器上託管你的應用程序,會話數據存儲在默認的共享位置,還有一些其他客戶的應用程序設置了較低的會話生命週期。發生此問題是因爲會話數據不是站點感知的:當PHP垃圾收集器刪除10分鐘內未訪問的會話文件時,它將刪除目錄中的所有文件;它無法知道他們屬於哪個網站。
我不能告訴你如何在WebsiteBaker中修復它,但是在普通的PHP中,你需要在你的賬戶中設置一個自定義的會話目錄。然後(只有這樣),你必須在你自己的會話數據的完全控制:
session_save_path('/home/users/foo/sessions');
ini_set('session.gc_maxlifetime', 3*60*60); // 3 hours (or whatever you need)
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 100);
session_start();
Websitebaker至少目前的2.8.2版和2.8.3 upcomming版本完全依靠會話有效期服務器設置。
如果你想不同的會話設置,你可以添加之前設置的config.php文件:
require_once(WB_PATH.'/framework/initialize.php');
這隻能如果你的服務器允許通過重寫劇本。
另一種選擇是使用.htaccess文件或更改服務器設置。
該文檔沒有說什麼,我敢打賭,你不會在這裏找到許多使用該CMS的編碼器。也許你只是搜索你的代碼庫或詢問[在wsbaker-forum]。(http://www.websitebaker2.org/forum/) – erikbwork 2011-01-05 07:58:42