我正在开发一个网站,我想制定一些安全程序,我想确保只有一个用户只能从一台计算机上登录他的帐户。
那么,任何想法如何用php甚至javascript代码处理这个?
注意:我尝试使用$_SERVER['REMOTE_ADDR']
,但IP不稳定。
答案 0 :(得分:1)
您只需在users表(is_online)中添加一列即可。用户登录时,设置为true。注销时,设置为false。您也需要使用会话。保存用户会话以进行验证。
if ( user.is_online ){
if ( user.session_id == this.session.id )
//OK, same user log in.
else
//OPS, different sessions, other user log in.
}
else {
//user log in first time
}
对于糟糕的代码感到抱歉,我不会在php中编写代码,但此验证必须是服务器端。
@ UPDATE
如果用户离开网站而未注销,则需要再添加一次验证。检查会话状态是否有效。如果没有,则将is_online保留为true并将会话更改为新会话。在session_status()了解详情。
也许,你需要运行一些cron来销毁非活动会话。我不知道这是否是最好的选择。