我想讓我的網站一次只允許一個會話。例如,假設用戶已經登錄到我的網站在Firefox上,如果用戶再次登錄到另一臺瀏覽器,如歌劇在同一臺計算機或不同的計算機上,Firefox上的會話將被銷燬。但是,如果仍然是一個會話,Firefox上的會話仍然保留。我可以知道我該怎麼做?我正在使用PHP和Apache。謝謝。一次只允許一個會話
問候。 Benjamin
我想讓我的網站一次只允許一個會話。例如,假設用戶已經登錄到我的網站在Firefox上,如果用戶再次登錄到另一臺瀏覽器,如歌劇在同一臺計算機或不同的計算機上,Firefox上的會話將被銷燬。但是,如果仍然是一個會話,Firefox上的會話仍然保留。我可以知道我該怎麼做?我正在使用PHP和Apache。謝謝。一次只允許一個會話
問候。 Benjamin
我會建議你做這樣的事情:
假設當用戶在以「COM_1」,「A」包廂,首次。針對該會話在數據庫中保存唯一的代碼,並且與用戶會話保持一致。
同時,如果他(用戶「A」)再次登入「com_2」,然後檢查他在數據庫中的狀態並更新數據庫中的唯一代碼。
如果同一用戶(用戶「A」)刷新「com_1」上的頁面,我們只需檢查會話中的唯一代碼並將其與數據庫進行匹配,這是肯定的不匹配,然後註銷並銷燬會話。
爲了保持用戶登錄,即使瀏覽器已關閉,您可以將cookie存儲在瀏覽器中,然後按照要求重新生成會話。
希望這會有所幫助。謝謝。
保留當前登錄的中央數據庫表或文本文件。如果用戶已在另一個會話中登錄,則通過將「登錄」標誌設置爲false來使該會話無效。
您可以使用下面的算法
invalidate()
會話並在數據庫中減小數值貸Bozho因爲他張貼了這個,回答一個問題 here
保存用戶的IP => SESSION_ID對在數據庫中。當用戶嘗試加載你的頁面時,你必須比較實際的IP => SESSION_ID對,然後允許/拒絕,如果這一對是好的/不同的。
我認爲你必須做這樣的事情:
你能解釋一下嗎,你的意思是你想讓同一個用戶可以同時登錄到不同的計算機嗎?如果我錯了,請糾正我。 – 2010-07-02 09:27:16
@Chetan:我想他想要的是相反的 – 2010-07-02 09:29:32
* [john在host89 dot net *上的[PHP session_destroy](http://php.net/manual/en/function.session-destroy.php)頁面的帖子可能會幫幫我。 – Mike 2010-07-02 09:34:30