2010-05-25 71 views
5

我需要自動註銷系統在我的應用程序。如何在php中實現自動註銷?

如果用戶沒有使用超過30分鐘的應用程序,他們應該再次登錄。

這是我需要的。 lastAccessTime應該小於30分鐘。如果lastAccessTime超過30分鐘,則用戶應使用憑據重新登錄。

(目前我自動註銷使用我的用戶表(數據庫的LastAccessTime場),並與當前時間的LastAccessTime比較每一個頁面加載,我不認爲這是正確的方式。)

是他們的任何方式實現? 在此先感謝。

回答

7

您應該指定會話有效期,只是使用$_SESSION,看是否有用戶登錄:

ini_set('session.cookie_lifetime',(60*30)); // 60 seconds times 30 = 30 minutes 
+0

會不說,還註銷後30分鐘活動用戶? – 2010-05-25 17:17:58

+4

不,每次活躍用戶訪問該頁面時,cookie都會重置。 – Konerak 2010-05-25 17:18:40

+2

不,每個請求都會重置cookie,從而重新啓動計時器。 – Amadan 2010-05-25 17:20:06

3

如果你使用cookies來保存用戶登錄,只需設置適當的TTL吧。

對於一個30分鐘的到期時間,在登錄時設置cookie這樣:

setcookie($COOKIE_NAME, $COOKIE_VALUE, time() + 60 * 30); 

或者,你可以使用session_set_cookie_params

session_set_cookie_params(60 * 30); // takes lifetime as first argument