2010-06-17 174 views
2

我們有一個內部控制面板,辦公室的所有員工都可以全天登錄,包括客戶服務。我想要設置它,以便在會話過期前讓您登錄1小時。我如何在PHP.ini中更改這個?在我理解之前,我做了一個修改,將會話保持打開狀態,直到瀏覽器窗口關閉,但它並沒有粘住。保持帳戶登錄

回答

8

有兩個不同的值,可以設置:

session.gc_maxlifetime指定的後數據將被視爲「垃圾」和潛在清理的秒數。

和session.cookie_lifetime這是cookie的持續時間。

http://www.php.net/manual/en/session.configuration.php

兩個值可以在php.ini文件中設置,但在.htaccess文件或在你的腳本中使用的ini_set可能會重寫。

0

我不認爲這可以從php.ini文件完成。我認爲你要麼將登錄時間存儲在服務器上,並將其與當前時間進行比較,如果60分鐘過去了,或者使用cookie,則可以刪除 - 這些可以有明確的使用期限。有關cookie的更多信息,請參閱this

1

最安全的地方來實現這將在您的應用程序。您可以在每次頁面加載時將會話更新時間存儲在$ _SESSION中。在更新之前,請檢查它是否已超過60分鐘限制,在這種情況下,您可以使用session_destroy()來終止會話,然後重定向到登錄頁面(或類似)。

2

你也可以使用JavaScript來做這個客戶端。使用AJAX調用定期向服務器「簽入」,使PHP會話保持活動狀態。您還可以監控用戶是否在當前頁面上做了任何事情,向他們顯示「2分鐘警告」消息,或者在達到1小時不活動期限時將其重定向到「會話終止」頁面。你甚至可以使用它來「強制」用戶登出。

這並不像純粹在PHP中那樣安全,但確實爲您提供了構建超酷功能的更多靈活性。