PHP如何实现同一个账号 在同一时间只能在一台机子上登录?

发布于2022-01-13 18:39:32

PHP如何实现同一个账号 在同一时间只能在一台机子上登录?请提供具体详细的代码,可加满分!

3个回答
admin
网友回答2022-01-13
方案一: 可以每次登录的时候生成一个COOKIE密钥记录到数据库并发送到客户端,每次客户端提交的COOKIE都要检查一下那个随机密钥是否与数据库里面的相同即可。 方案二: 将SESSION保存在数据库中,用户登录以后在该用户的用户表中记录 SESSION ID 值,并在SESSION表中将这个用户原来的SESSION ID删除。或者如果SESSION里面有值就不给他登录。 下面的压缩包里面是一个数据库保存SESSION的例子: http://www.zxingphp.cn/download/PHP_Session.gz
admin
网友回答2022-01-13
建一个数据表 比如叫 onlineuser UserName/UpdateTime/UserKey 在用户登录时,记下这个用户的用户名,并生成一个key,存入到他的cookies里,设置失效时间为1天,然后,在一个页面通用文件里,更新UpdateTime为最新时间 另外,页面通用文件中还需要做另一件事,把UpdateTime>10分钟的用户从这个表中删除掉。 然后 在用户登录时加入判定,如果在OnlineUser表中已经有这个用户,检查cookies里的Key是否和数据表中的UserKey相同,相同则允许登录,不同则提示“该用户已经在线,请10分钟后重试”,拒绝登录,并清除掉用户cookies中的Key。而如果OnlineUser表中没有这个用户,则直接允许登录。 用户LoginOut的时候,将他的cookies中的Key要一并清除。 这样可以实现的效果是,一个用户登录后,别人就不能再登,而且即便掉线,他10分钟内也还可以再登。
admin
网友回答2022-01-13
回复 3楼bylovebybaby的帖子那个是绑定账号的,卸载重装的时候有没有要输账号

回到
顶部