php 限制登录,PHP实现限制登录,一个用户只能在一处登录

ea8d7b6186de90b7f2e4c5ff0ac86176.png

有时候我们需要禁止用户重复登录的限制功能,此功能不同于单点登录,单点登录百度上介绍,单点登录(Single Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。

SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。这只是提醒不要混淆。那言归正传,小编也了解一下,限制登录方法有很多,最多的就是session_id的使用。通过对sesson_id的验证禁止用户多处登录。下面合肥达内PHP培训就给大家介绍一下吧。

首先需要用到表会员表要用到的字段,用户名,最后登录时间,session_id,有需要可以加上ip(这里就不介绍)

登录文件代码login.php

$username=$_REQUEST['username'];

//必须开启session才能获取session_id否则将为空

session_start();

$session_id = session_id();

//查看用户的session_id如果为空则重新生成

$sql="update

".$ecs->table('users')." set session_id='{$session_id}' where

user_name='{$username}'";

$db->query($sql);

//将session_id和用户名存储到session中

$_SESSION['s_id']=$session_id;

$_SESSION['u_name']=$username;

本网站引用的公共文件,加入下面的session验证代码(验证session_id是否过期,或是否一致。)

$u_name=$_SESSION['u_name'];

if($u_name){

//查看session_id,登录时间

$sql_id="select session_id,last_login

from ".$ecs->table('users')." where

user_name='{$u_name}'";

$ss=$db->getRow($sql_id);

$time=time();

//如果登录时间超过自己指定的时间可以强制下线重新登录

if(($time-$ss['last_login']) > 1800){

//修改session_id

$sql="update

".$ecs->table('users')." set session_id='' where

user_name='{$u_name}'";

$db->query($sql);

echo "";

}

}

//如果数据库session_id和当前获取的session_id不一致提示已经登录

if($ss['session_id'] != $_SESSION['s_id']){

echo "";

}

作者:吾林爱分享

好了,今天就说这么多了。合肥PHP培训班预祝大家自学成功,有兴趣脱产学习那好了,知识就是要不断积累的,时刻保持一颗进取的心,总归不负自己,有个好的收获。合肥达内欢迎你的加入。

【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值