资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php怎么实现一个账号只能有一个人登录-创新互联

这篇文章主要介绍php怎么实现一个账号只能有一个人登录,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联成立十多年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供网站设计制作、成都网站制作、网站策划、网页设计、域名申请、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,创新互联通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。

php实现一个账号只能有一个人登录的方法:首先将session信息存在redis中;然后将session_id存到mysql数据库中;接着验证session是否过期;最后利用openfire推送消息,并将session_id更新到数据库中。

php 实现同一个账号同时只能一个人登录

以前考虑过这个问题,今天实现了一下,挺快的,从研究到开发完成差不多4个小时。有点类似QQ,二台电脑登录,一台会把另一台挤掉线,并提示其他地点登录信息。

一,实现原理

1,用户在电脑A登录,session信息存放在redis当中,并将session_id存到mysql数据库中。

2,同一用户在电脑B登录,验证完用户名和密码后,将该用户信息从数据库读出,取得用户在电脑A登录的session_id,然后在到redis中验证session是否过期。

3,如果过期,不用openfire推送提示信息。如果没有过期,php利用openfire推送消息后,在将redis中用户在电脑A中登录的session删除掉,删除后,在将用户在电脑B登录的个人信息放到session中,并将电脑B登录的session_id更新到数据库中,在这里一定要先发送推送,然后在清空session,不然用户在电脑A收不到xmpp发过来的消息。

注意:

openfire是java cms的一种,自身有数据库,您创建的用户表根openfire自带的用户表之间要建立某种联系(如:手机号,邮箱等),方便信息推送。

同一session_id肯定是在相同媒介上登录的,这个时候,也不用更新数据库和推送消息

下面简单说一下安装过程,以及要注意的地方。

【推荐学习:《PHP视频教程》】

二,安装所用到的工具

# yum install php php-fpm nginx mysql mysql-server redis php-redis php-devel php-pdo php-mysql

修改session存储方式:

查看复制打印?

# vim /etc/php-fpm.d/www.conf     
  
;php_value[session.save_handler] = files   //注释掉旧的  
;php_value[session.save_path] = /var/lib/php/session  
  
php_value[session.save_handler] = redis  //添加以下内容  
php_value[session.save_path] = "tcp://127.0.0.1:6379"

启动服务后,如果以下内容说明,session存redis成功了

php怎么实现一个账号只能有一个人登录

redis telnet查看session

openfire下载地址:http://www.igniterealtime.org/downloads/

查看复制打印?

# rpm -ivh ./*.rpm   //下载的是rpm安装包

openfire启动后,然后访问http://ip:9090,一步一步配置就成了,有一点要注意就是数据库的编码。

以上是“php怎么实现一个账号只能有一个人登录”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


本文题目:php怎么实现一个账号只能有一个人登录-创新互联
分享地址:http://cdkjz.cn/article/gdhhs.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220