2012-06-04 68 views
0

可能重複:
Extending Session Timeout in PHP

我有PHP的會議,我可能有問題是,如果很長一段時間我不使用該應用程序,如果我刷新網絡瀏覽器,我突然在所有$ _SESSION中獲得聲明。我想知道是否有可能如果我長時間沒有使用網頁,如果我刷新頁面,$ _SESSIONs保持不變?

我知道@符號可以使用,但只是爲了不顯示錯誤信息?我只是不想讓它停止會議。

感謝

+3

這些不是「解析錯誤」的肯定。 – mario

+0

http://www.php.net/manual/en/session.configuration.php#ini.session.gc-probability –

+0

通知對不起,不解析錯誤 – user1394925

回答

2

你很可能得到通知描述什麼是你的代碼錯誤。考慮糾正你的代碼,所以你不會收到通知,而不是避免錯誤出現的情況。

+0

那麼發生了什麼讓我們說你登錄到一個頁面輸入用戶名和密碼,這些詳細信息存儲在會話中。但經過一段時間後,如果您點擊刷新按鈕讓5個小時後說,那麼您可以在這些會話上獲得通知。我可以用什麼方法修復代碼?任何示例 – user1394925

+1

您可以檢查會話是否確實存在於會話中。如果你只是簡單地檢查一個值是否爲真(例如'if($ _SESSION ['userId']){//做某事...'),那麼可以安全地取消通知('@ $ _ SESSION ['userId 「]');在更復雜的情況下,您應該做出適當的努力來驗證'$ _SESSION'容器的狀態。 – lanzz

+2

@ user1435599在大多數情況下,isset是你的朋友。 :-) http://php.net/manual/de/function.isset.php – Oliver

0

您的目標不應該是讓會話時間更長,而是要刪除通知。

作爲@ceejayoz通過修復您的代碼而不是通過抑制錯誤來提及。

+3

爲了澄清,刪除**的原因**的通知,而不是隱藏它們。 – ceejayoz

+0

@ceejayoz這就是爲什麼我沒有寫關於@s或error_reporting的信息。 ;-) – Oliver

+1

是的,只是想我會讓它變得晶瑩剔透。有些人閱讀「刪除通知」並轉到「哦,我該如何關閉錯誤報告?」 – ceejayoz

0

如果要延長會話的長度,請嘗試ini_set('session.gc_maxlifetime', '3600');,其中「3600」是希望會話持續的秒數。如果你想讓這個會議永久持續下去,我會建議在那裏放一個非常大的數字。

相關問題