PHP怎么实现网站中,同一个用户不能同时在线?
2024-08-31 18:35:58
先上图,看个大概:
一般的原则就是,后一个用户登录时会把前一个用户踢下线。
在用户首次登录时,我们会把用户的sessionid保存到数据库,这个是用户的唯一标识。方便后边操作。
用户只有在登录时才会和数据库中的phpsessid进行对比,如果不同,则更新数据库中的phpsessionid为当前浏览器的phpsessionid,这样后登录的用户就把前边登录的用户给踢下线了。
但是前边的用户怎么知道自己被踢下线了?
我使用的Yii框架,在YII框架中有一个filters()这样一个方法。在每个控制器中都存在该方法,我们可以在这个方法中,让当前用户的phpsessionid与数据库中的phpsessionid进行验证,当发现phpsessionid不同时,我们就清除当前浏览器的phpsessionid,并退出网站,提醒用户当前帐号在其他地方登陆。
最新文章
- AxureRp 打开SVN上的团队项目
- ssh连接失败,排错经验
- Palindrome Linked List
- css3 弹框功能样式
- jQuery点缩略图显示大图片
- html object元素
- sql中select语句的逻辑执行顺序
- jersery+jetty嵌入式restful的框架开发
- git 本地项目推到远程仓库
- SpringBoot修改Redis序列化方式
- 【oracle】ORA-02289: sequence does not exist
- C#HTTP请求之POST请求和GET请求
- 可空类型(Nullable)
- G - Rabbit and Grass
- docker的容器和镜像的差别
- 如何快速成为一名Linux运维工程师
- maven入门安装及HelloWorld实现
- Linux系统磁盘满解决方案
- 用VS2012不能打开VS2010的项目
- top command-linux下用top命令查看cpu利用率超过100%