实现异地用户登录提醒功能的PHP方法[基于thinkPHP框架]
本文介绍了PHP实现异地登录用户提醒功能的方法。分享给大家参考,如下:
对于安全性要求比较高的网站,尤其是后台管理,有时候需要识别你的账号是否被盗或者此刻是否有其他人登录进行后台操作,这是非常不安全的。为了避免两个人同时登录和操作,可以强制一个账户离线。
当然不能以IP来判断,因为IP在某个网段随时会发生变化,但是有一种机制恰好可以解决这个问题,那就是session。只要使用同一个浏览器访问网站,如果浏览器不关闭,每个访问者的session_id都不会改变,这正是解决这个问题所需要的。
以TP框架搭建的网站后台为例,思路如下:
(1)数据库用户表
在用户表中,添加一个字段` session_id`varchar (32)来存储登录后的session_id。
(2)用户登录
用户登录时,判断账号密码和验证码正常。当这些得到验证后,取出当前的session_id并将其存储在数据库用户表中。
m(' user ')-其中(array(' id '=$ _ SESSION[' uid '])-save(array(' SESSION _ id '=SESSION _ id()));(3)解决远程登录问题
对于后台操作,为了方便验证和安全操作,基本上是先创建一个基础控制器BaseController,然后后台的其他操作控制器继承这个基础控制器。在后台操作的每一步之前,用户状态的检测都放在BaseController的initialization _ initialize()方法中。
现在,在_initialize()方法中,除了验证用户的登录状态是否被锁定等。则应该取出本地session_id,并与存储在用户表中的session_id进行比较。如果不匹配,则表名为的账户登录到不同的地方,然后可以强制注销,返回登录页面。
$ user=M(' user ')-其中(数组(' id '=$ _ SESSION[' uid ']))-find();$ session _ id=session _ id();if($user['session_id']!=$ session _ id){ session _ destroy();$ this-错误('您的帐户已在其他地方登录,您已被强制注销',U('登录');}当然也可以拿到异地登陆的IP,并给出:的提醒
更多对thinkPHP感兴趣的读者可以查看本网站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《PHP模板技术总结》、0103010。
希望本文对基于ThinkPHP框架的PHP编程有所帮助。
版权声明:实现异地用户登录提醒功能的PHP方法[基于thinkPHP框架]是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

















