博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php 账号不能同时登陆,当其它地方登陆时,当前账号失效
阅读量:6328 次
发布时间:2019-06-22

本文共 870 字,大约阅读时间需要 2 分钟。

解决的思路是每当用户登陆时我们必需记录当前的用户id和session_id,如果有人在其它地方用此账号登陆时,我们把此用户id对应的session_id的session文件删除,并重新记录当前的session_id。那么之前的用户就失效了。
 
login.php代码如下:
$uname ); echo ''; echo ''; }}?>
用户登陆页面
用户名:
密码:
index.php代码如下:
db.php代码如下:
tb_login_state表结构如下:
CREATE TABLE `tb_login_state` (`uid` int(11) unsigned NOT NULL COMMENT '用户ID',`session_id` varchar(32) NOT NULL DEFAULT '' COMMENT '存储用户的session_id') ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户登陆状态表';
如果是session存储方式不是文件,而是存在mysql,memcache,redis中,思路其实是一样的,都是把前一次的session_id保存。判断用户是否登陆过,如果登陆过就让上一次的session失效(删除session数据)。
 
(*通过设置session的过期时间和cookie的过期时间来让session失效是不严格的,最直接的方法是直接把session文件删除。)
 
推荐阅读:
http://www.laruence.com/2012/01/10/2469.html

 

 

 

 
 
 

 

转载于:https://www.cnblogs.com/jkko123/p/6294608.html

你可能感兴趣的文章
FarBox--另类有趣的网站服务【转】
查看>>
在非纯色背景上,叠加背景透明的BUTTON和STATIC_TEXT控件
查看>>
Distributed2:Linked Server Login 添加和删除
查看>>
海量数据处理相关面试问题
查看>>
Python-time
查看>>
OpenAI推新程序包:GPU适应十倍大模型仅需增加20%训练时间
查看>>
Java中取两位小数
查看>>
RTX发送消息提醒实现以及注意事项
查看>>
使用 ftrace 调试 Linux 内核【转】
查看>>
唯一聚集索引上的唯一和非唯一非聚集索引
查看>>
Spark新愿景:让深度学习变得更加易于使用——见https://github.com/yahoo/TensorFlowOnSpark...
查看>>
linux磁盘配额
查看>>
新书上市:C#科学计算讲义
查看>>
NFS文件共享服务器的搭建
查看>>
%r 和 %s 该用哪个?
查看>>
小公司职场不是“切糕”
查看>>
webstorm配置
查看>>
JSP获取客户端的浏览器和操作系统信息
查看>>
关于PHP进阶
查看>>
play工程部署到云服务器
查看>>