2011-10-10 93 views
0

我有一個用戶登錄系統,它可以在會話中工作,以便當用戶登錄用戶的會話變量時填入他/她的用戶名,那麼她加載的每個頁面這個會話,如果它沒有被填充,那麼頁面被重定向到登錄頁面。註銷會話將被銷燬。將會話限制爲只有一個用戶登錄實例

但是,這仍然允許用戶同時打開2個不同的瀏覽器並登錄。我想停止這個,這樣,如果用戶登錄,然後嘗試登錄使用不同的瀏覽器或電腦,他們會得到一個錯誤,說用戶已登錄。

所以我的第一個想法是使用數據基地寫,但那麼如何知道如果瀏覽器關閉取消設置該值?

我的所有頁面都是php,我使用ajax和php腳本來更新動態內容。

那麼最好的方法是什麼呢?

回答

1

他們得到一個錯誤說用戶已經登錄。

這是錯誤的方法,導致可怕的用戶體驗。

使其相反:讓後者進入,但讓前一個退出。 您只需要將當前會話ID存儲在用戶的表中。如果不匹配 - 請求登錄。

+0

酷,遵循你的建議,所有工作和排序,tnks – David

1

如果您在DB中發現該用戶已經登錄,只需詢問他/她是否想繼續並覆蓋舊的會話信息。另一種方法可能是給你的數據庫信息添加一個時間標籤(例如插入時間)並檢查插入後已經過了多長時間。

Regards

0

如果我已經正確理解你的問題,我認爲你可以使用cookie。一旦用戶登錄,您可以創建一個cookie並設置瀏覽器會話時間到期。在從數據庫中獲取數據之前,您需要檢查cookie是否存在。

0

我會作出這樣的檢查瀏覽器類型另一個會話變量,如果是不同的調用視圖的方法來輸出你說什麼