>백엔드 개발 >PHP 튜토리얼 > 怎样防止一个用户名重复登陆,该如何处理

怎样防止一个用户名重复登陆,该如何处理

WBOY
WBOY원래의
2016-06-13 13:51:171278검색

怎样防止一个用户名重复登陆
大概意思就是,一个用户在一个地方登陆了,如果他到别的地方再次以同一身份登陆时,怎么判断他是否已经登陆?最好不用数据库来实现

------解决方案--------------------
顶!!
------解决方案--------------------
还是利用数据库吧,增加一个字段而已
------解决方案--------------------
如果有两个不同的地方登录,session有唯一性吗? 
实际上,多个浏览器可能会产生多个不同的session

------解决方案--------------------
登录用户名单肯定要存在一个全局性的变量中,貌似php没有application/static之类的东西,所以还是存在数据库中比较好。
------解决方案--------------------
各位别忽悠人了,还mmcache,最简单的法子就是加个字段,不会让你的数据库增加负载的。因为这个字段你需要在登陆的时候作为条件判断,别忘了在这个字段上加个索引。
------解决方案--------------------
php没有application对象 而session对象也就是对话级 在别的对话里面遍历服务器里面的所有session好像也不能实现.一般做法是通过数据库,这其实占用不了多少资源,而服务器那里给个定时器,定时检查下服务器里面的用户是否还在线,这是为了防止用户非正常退出.
------解决方案--------------------
如果要限制一个用户只能在一个地方一个浏览器上登录,数据库是最好的解次方法。
session在打开一个浏览器窗口时会自动生成,关闭时自动消失,即使在同一台计算机上,多次打开窗口也会生成多个session, 故session解决不了不同计算机登录以及同一计算机打开多个浏览器窗口登录唯一性问题;
cookie值保存在本地客户端,对于已经保存在一个计算机上的cookie值而言,它不会自动保存到别的计算机上,所以cookie解决不了不同计算机登录唯一性问题;

综上,解决不同计算机重复登录问题只能用数据库操作

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.