PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

一个判断PHP程序是否被同时在不同浏览器上执行的问题

原创
2016-06-23 14:18:27 944浏览

问题是这样的,我有一个程序(假设单个页面),这个程序被运行的时候,我不想让多个浏览器能同时运行,因为SESSION,COOKIE这样的会因为浏览器内核不同而导致验证不一样,就会出现可能同一时间,开3个不同内核的浏览器就能同时模拟3个用户运行该程序。

如何验证才能保证在同一时间,一台电脑一个用户只能运行一个该程序,而不会受到浏览器的影响。

就比如网页游戏的登录,同一浏览器不能同时登录多个账号,但是开3个不同浏览器就能同时登录3个账号。

如何验证才能防止这种“多开”的情况?


回复讨论(解决方案)

这个可以写进内存或数据库判断用户是否已经登录,然后每次登录前再去判断登录状态,这样不就解决了躲开的情况吗?不知鄙人说的是否这个意思

可以写入数据库进行判断。

mac+ ip 验证怎么样?

这个可以写进内存或数据库判断用户是否已经登录,然后每次登录前再去判断登录状态,这样不就解决了躲开的情况吗?不知鄙人说的是否这个意思

这个确实可以防止同一用户的“多开”情况,但是我想要的是只能有一个用户登录,也就是,即便是3个不同的用户名也不行

mac+ ip 验证怎么样?

这个也许可行,不过实际中有这样的项目吗?

http://www.baidu.com/baidu?word=js%E8%8E%B7%E5%8F%96mac%E5%9C%B0%E5%9D%80&ie=utf-8

http://www.baidu.com/baidu?word=js%E8%8E%B7%E5%8F%96mac%E5%9C%B0%E5%9D%80&ie=utf-8

惭愧,谢谢版主老大

有帐号就好办了,后一个登录杀掉前一个,记录最新一个session id就行

有帐号就好办了,后一个登录杀掉前一个,记录最新一个session id就行

那我怎么知道哪个账号对应着哪一个账号呢,我只是防止一个用户多个账号同时登录,而不是这个程序只能一个用户而且一个账号登录

http://www.baidu.com/baidu?word=js%E8%8E%B7%E5%8F%96mac%E5%9C%B0%E5%9D%80&ie=utf-8
版主老大,貌似这个需要用户点击信任允许才行啊,有没有直接可以做到的

获取用户信息,当然是要用户允许的。不然你也打算制造仪的“棱镜”事件?


有帐号就好办了,后一个登录杀掉前一个,记录最新一个session id就行

那我怎么知道哪个账号对应着哪一个账号呢,我只是防止一个用户多个账号同时登录,而不是这个程序只能一个用户而且一个账号登录

很晕,怎么会不知道呢?登录时不判断不记录帐号的么?难道就一个True/False?

我得提醒一下: mac地址是可以伪造的...



有帐号就好办了,后一个登录杀掉前一个,记录最新一个session id就行

那我怎么知道哪个账号对应着哪一个账号呢,我只是防止一个用户多个账号同时登录,而不是这个程序只能一个用户而且一个账号登录

很晕,怎么会不知道呢?登录时不判断不记录帐号的么?难道就一个True/False?

我的目的是想防止“一个用户多开”的情况,所以我要确定的是,这个用户只能同时使用一个账号,如果他注册了三个账号,用三个不同浏览器登陆,那么服务器针对每个账号来看确实没问题,但是这三个账号都是同一个用户同一时间登陆的,我现在要确定这个用户只能使用其中一个

获取用户信息,当然是要用户允许的。不然你也打算制造仪的“棱镜”事件?

那有没有能用户本身就提供,又可以确定唯一性的信息呢

我得提醒一下: mac地址是可以伪造的...

妞妞,那有没有什么办法能确定到唯一用户呢

你账号哪里做一个验证就行了,SESSION是每访问一次有一个唯一ID的,换浏览器就肯定换新的了

你账号哪里做一个验证就行了,SESSION是每访问一次有一个唯一ID的,换浏览器就肯定换新的了

我现在是要想办法确定用户唯一,不是账号唯一,换了新SESSION那我还怎么确定他之前是不是登录过了


我得提醒一下: mac地址是可以伪造的...

妞妞,那有没有什么办法能确定到唯一用户呢

除非你抛弃所有的浏览器做为客户端,自己开发一个专门的客户端用来访问,否则是没有办法的。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。