导航到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