Home > php教程 > php手册 > php判断当前用户已在别处登录的方法

php判断当前用户已在别处登录的方法

WBOY
Release: 2016-06-06 20:14:51
Original
874 people have browsed it

这篇文章主要介绍了php判断当前用户已在别处登录的方法,主要利用session记录用户登录信息来完成这一功能,是非常实用的技巧,具有一定参考借鉴价值,需要的朋友可以

本文实例讲述了php判断当前用户已在别处登录的方法。分享给大家供大家参考。具体分析如下:

主要思路如下:
1.登录时,将用户的SessionID记录下来
2.验证登录时,,将记录的该用户SessionID与当前SessionID匹配
3.如果不相同,说明在别处登录

完整实例代码点击此处本站下载。

首先,进入可查看登录状态。
index.php页面代码如下:

复制代码 代码如下:


//开启Session
session_start();

header("Content-type: text/html; charset=utf-8");

//取Session中的用户信息
$username=$_SESSION['username'];

//判断是否有效
if(!isset($username)){
 echo "您未登录!登录";
 exit();
}

//登录时保存的该用户SessionID
$sessin_id=file_get_contents('session_id/'.$username);

//如果当前的SessionID与之前记录的SessionID不匹配
//说明已在别处登录
if(session_id() != $sessin_id){
 //注销当前用户
 unset($_SESSION['username']);
 echo "您已在别处登录!从新登录";
 exit();
}else{
 echo "欢迎您:".$username;
 echo " 注销";
}

echo "

--这是登录之后才能看到的内容--

";

对于未登录的用户则提示跳转到 登录页面,login.html页面代码如下:

复制代码 代码如下:





 
 登录


 

  用户名:

  密 码:

  
 

 

  提示:测试用户名:admin  密码:123
 



登录成功后由login.php页面进行相应的session判断。

login.php页面代码如下:

复制代码 代码如下:


//开启Session
session_start();

//设置编码
header("Content-type: text/html; charset=utf-8");

//接收表单提交的内容
$username=$_POST['username'];
$password=$_POST['password'];

//模拟验证用户登录
if($username=="admin" && $password=="123"){
 
 //登录成功,将用户名保存到Session中
 $_SESSION['username']=$username;
   
 //创建目录
 if(!file_exists('session_id')){
  mkdir('session_id');
 }
 
 //保存的文件名
 $filename='session_id/'.$username;
 
 //当前登录用户的SessionId
 $session_id=session_id();
 
 //当SessionID保存到对应的文件中
 //实际应用,可以保存到数据库、memcache等
 file_put_contents($filename,$session_id);
 
 //跳到主页
 header ('Location: index.php');
 
}else{
 echo ('<script>alert("登录失败");window.location="login.html"</script>');
 exit();
}

希望本文所述对大家的php程序设计有所帮助。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template