2015-10-18 64 views
-4

阻止用戶同時從其他設備或其他瀏覽器登錄 如果用戶從一臺PC /設備登錄,那麼該特定用戶無法使用同一登錄來自另一臺PC /設備或另一臺瀏覽器的ID和密碼。阻止用戶同時從其他設備或其他瀏覽器登錄

使用php和mysql

+1

1)你不應該這樣做。 2)如果你堅持這樣做,你有什麼嘗試?我想你只需要存儲用戶登錄的地方。然後當有人試圖登錄時,請檢查該值。 – David

+1

你希望我們爲你編寫所有的代碼? [請把更多的精力放在你的問題上。](http://tinyurl.com/stack-hints) – Nasreddine

+2

這只是一個聲明?或者你有任何疑問......? –

回答

2

你可以在你的db表中有一個單獨的列,例如is_logged,當用戶第一次登錄時,它將被更新爲true,所以每一次嘗試都會失敗。

SELECT * 
FROM my_table 
WHERE username = 'username' AND password = 'password' AND is_logged != 1; 

UPDATE(根據您的更新)

你可以有另一列如last_action(時間戳),並在您的應用程序邏輯設定,如果用戶沒有與網站互動的特定時間(例如3600秒),那麼他將被視爲在他下一次登錄嘗試期間自動註銷。

SELECT * 
FROM my_table 
WHERE username = 'username' AND password = 'password' 
AND TIME_TO_SEC(TIMEDIFF(NOW(), last_action)) > 3600; 
+1

這將是很好的解釋downvote。 –

+0

您的初始答案沒有考慮到不會手動註銷的用戶,因此用戶被鎖定在前一個未清除會話的可能性很高。 – Wobbles

+0

是的,但OP沒有在他的問題上澄清它。他的評論後,我相應地更新了我的答案。儘管如此,這不是一個完美的解決方案,但是可以爲他的特定問題提供解決方案,所以我真的相信這個倒退是有點不公平的。 –

1

您可以在登錄表中添加一列(除了其中已存儲用戶名和密碼),並將其設置爲一個,只要用戶登錄。每次檢查柱與用戶名和密碼。如果它不是一個。授予登錄。其他錯誤消息。當用戶註銷時將其設置爲零。

相關問題