欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-13 12:08:55
...
问题是这样的,我有一个程序(假设单个页面),这个程序被运行的时候,我不想让多个浏览器能同时运行,因为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地址是可以伪造的...

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

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