PHP实现用户远程登录提醒功能的方法

2019-12-09作者 admin

 

原标题:PHP方法实现用户远程登录提醒功能

文章来源:博客

链接:http://bbs.itheima.com/forum.php? mod = view thread & amp;tid=398668

作者:黑马

文章来源:博客

链接:http://bbs.itheima.com/forum.php? mod = view thread & amp;tid=398668

作者:黑马

文本

有时,当您的网站帐户被盗或您登录到其他地方操作后台时,右下角会弹出一条提示消息,提醒您的帐户远程登录或被迫注销。对于这种安全性要求高的网站,很多后台管理人员都会做这个功能提醒。

此时识别一个人的帐户是否被盗或另一个人是否已登录进行后台操作是非常不安全的。为了避免两个人同时登录和操作,可以强制一个帐户注销。今天我们将解释这些知识。当然,用知识产权来判断并不好,因为知识产权随时在某个网段发生变化,但是有一种机制,那就是会话,可以解决这个问题。只要您使用同一个浏览器访问网站,每个访问者的session_id将保持不变,而不关闭浏览器,这正是解决这个问题所需要的。

以TP5.0框架构建的网站背景为例;哪个帧是同一个

(1)修改数据库用户表

在用户表中,添加一个字段“session_id”varchar(32),以便在登录后存储session _ id。

(2)用户登录

用户登录通常是为了判断账户密码和验证码。当这些被验证后,当前会话id被取出并存储在数据库USER表中。

Db::名称('管理员')->。其中(' id ',$ UserInfo[' id '])-& gt;更新(['会话_id'= >;会话id]);

(3)为解决后台操作的异地登录问题,为了便于验证和操作安全,基本上创建了一个公共控制器(Common controller)来继承控制器基类,然后后台的其他操作控制器继承公共控制器。在后台操作的每一步之前,用户状态的检测都被纳入通用控制器的构造方法中。

现在在__construct构造方法中,除了验证用户的登录状态是否被锁定之外,还必须取出本地会话id并与管理表中存储的会话id进行比较。如果表名帐号不匹配,则用户可能被迫注销并返回登录页面。代码如下:

展开全文

$user=Db::名称(' admin')->。其中(' id ',会话(' admin _ id ')-& gt。查找;

$ session _ id = session _ id

如果($用户['会话_id']!= $session_id){

会话_销毁;

$这个->;错误(“登录异常,强制脱机”,“登录/索引”);

}

的影响如下:

Login.php核心代码isGet显示登录页面,而不是执行登录处理。

类逻辑下一个结束命令

{

public $ is _ check _ login = false

publicfunctionindex{

如果($这个->;请求->;isGet){

返回$this->;提取;

}

//调用自定义方法登录

$model =模型(“管理”);

$ result = $ model->;登录;

如果($result === false){

$这个->;错误($ model->;getError);

}

}

}

Admin.php主要是上述处理登录的逻辑和处理方法。支票等。,不返回false将存储在session_id中

Common.php通用控制器文件,登录继承通用方法,即中间件。这意味着在登录之前,首选公共方法。如果此处接收的会话id与现有列表中的会话id一致,如果不一致,将提醒远程登录并强制脱机!

public $ is _ check _ login = true

公共$请求;

公共功能_ _构造(请求$请求)

{

父::_ _构造;

$这个->;请求= $ req

如果(!会话(' admin _ id ')& amp;& amp$这个->;is_check_login){

$这个->;错误(“先登录”、“登录/索引”);

}

if(会话(' admin _ id ')& amp;& amp$这个->;is_check_login){

$ user = "select ..... "//在表中找到session_id并进行比较

如果(会话(' admin_id ')!= $用户['会话_id']){

会话_销毁;

$这个->;错误(“登录异常,强制脱机”);

}

}

}

整个过程的想法很清楚,所以当它实现时,你会觉得很简单!事实上,这是sesson_id的用法!回到搜狐看更多

负责任的编辑:

网友评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

 
 
站点地图梦之城彩票 宝马会 玖玖彩票 101彩票 金福多彩票 梦之城彩票 rjdd.netfuyoudl.comchunshanyuan.com0598xy.comdlywxx.comwoaimeizi.comnimaboke.comlw-sh.comidp.16afcaipiao.cncyber.caiacademic.cnadsl.xrayyule.cnel.icaihai.cnns3.555caiba.cn