2011-05-20 62 views
2

我有一個會話的PHP應用程序,並希望確保用戶不會將他們的憑據給第三方,這可能會同時使用該帳戶。如何確保用戶無法使用PHP中的同一個帳戶登錄兩次?

有什麼辦法可以確保登錄的用戶將第一個用戶踢出?

還有一種方法可以查看哪些會話處於活動狀態?

非常感謝。

+1

將一個LoggedIn字段添加到您的數據庫。 – Blender 2011-05-20 07:53:09

回答

1

您可以將會話ID與登錄用戶相鏈接。然後查看該用戶是否具有會話標識,如果是,則使用該會話標識銷燬該會話。也鏈接會話名稱。然後你可以銷燬該用戶的會話cookie。

setcookie($session_name, '', time()-3600, '/'); 
1

您可以在每次嘗試進行身份驗證時檢查其用戶表中的列。 (驗證:true,false)。會話將會消失,並根據php設置中的時間框架被刪除。如果文件不存在,會話就會消失。

+1

您也可以將會話ID密鑰存儲在users表中。 – John 2011-05-20 07:55:21

1

這是一家擁有多項解決方案的非常寬泛的問題 - 看到谷歌http://www.google.com/search?q=php+preventing+multiple+logins&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

總的原則是這樣的 - 你需要跟蹤會話和您的登錄處理代碼,檢查是否會話是活躍的用戶嘗試登錄 - 並阻止該登錄嘗試,或者以試圖登錄的用戶爲起點登錄當前登錄的用戶。有幾種方法來跟蹤會話,處理到期等。通過覆蓋PHP的默認會話處理機制,您甚至可以在很低的層次上執行大量的這種cusotmization - 這裏是一個關於這個主題的便利文章http://devzone.zend.com/article/141

相關問題