導航到Facebook社交網絡時,我看到我可以打開2個帳戶(1個在Firefox中,另一個在Internet Explorer中)或者可能有多個帳戶。知道Facebook政策只允許同時打開一個會話,這並不是很好。如何防止會話
在啓動會話時,如何防止在另一個瀏覽器(Internet Explorer/Safari/Opera ...)中重新打開同一會話(考慮會話名稱$_SESSION['user']
)?
否則,我怎麼知道(使用PHP)某個會話在所有瀏覽器中打開以防止會話被打開兩次?
導航到Facebook社交網絡時,我看到我可以打開2個帳戶(1個在Firefox中,另一個在Internet Explorer中)或者可能有多個帳戶。知道Facebook政策只允許同時打開一個會話,這並不是很好。如何防止會話
在啓動會話時,如何防止在另一個瀏覽器(Internet Explorer/Safari/Opera ...)中重新打開同一會話(考慮會話名稱$_SESSION['user']
)?
否則,我怎麼知道(使用PHP)某個會話在所有瀏覽器中打開以防止會話被打開兩次?
$token = hash('sha256', rand() . microtime() . $_SERVER['REMOTE_ADDR']) // rand as possible
$_SERVER['user'] = $token;
而不是防止一個新的會話從一個新的瀏覽器被打開,如果有已經是一個公開會議上的其他地方,可以考慮無效任何現有會話到用戶帳戶時,一個新的登錄會出現。這將最大限度地減少用戶的挫折感,並且易於實現。
存儲用戶的IP,如果他們有會話或沒有,然後檢查IP? – 2010-12-13 17:00:43
我想到的第一件事是在用戶表中有一個LoggedIn布爾標誌。 – Ben 2010-12-13 17:03:06
@火箭,謝謝+1,我從來沒有想到過,但IP地址似乎比本的回答更難,@Ben,這是一個有用的方式(我會用它+1):謝謝大家! – SmootQ 2010-12-13 17:09:00