2011-04-17 72 views
1

可能重複:
PHP /SESSION: Login one per user?如何防止來自不同設備的多個用戶同時登錄同一個帳戶?

您好所有,

我需要知道如何讓一個用戶登錄一次

感謝

+0

在數據庫中存儲一個值,當它們登錄時將它設置爲true。每次嘗試登錄時都檢查它是否爲false ..? – Elliott 2011-04-17 19:07:46

+0

@Elliot:我建議存儲'session_id()'值 - 這樣一來,確保帳戶登錄到那臺計算機要容易得多。當他們登錄到其他地方時,它會發生變化,因此將存儲值與瀏覽器中保存的值進行比較將會導致錯誤。 – Bojangles 2011-04-17 19:15:10

回答

5

如果你是使用PHP的內置會話功能。您可以使用$ session_id = session_id()獲取會話ID。

當用戶登錄時,您可以獲取它生成的會話標識並將其存儲到該用戶帳戶下的數據庫中。然後在每個頁面上檢查當前會話ID是否與該用戶的數據庫中存儲的會話ID相匹配(如果沒有,則終止當前會話並將其重定向到登錄頁面)。

會話ID在他們登錄的每臺設備上會有所不同。

這有道理嗎?

+5

..如果會話超時,用戶將永遠無法再次登錄,因爲他有一個新的會話ID .. – halfdan 2011-04-17 19:55:05

+3

殺死前一個會話,保持當前會話會更好:) – Hugo 2013-07-30 13:51:31

相關問題