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


Posted in PHP onJanuary 06, 2015

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

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

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

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

<?php

//开启Session

session_start();
header("Content-type: text/html; charset=utf-8");
//取Session中的用户信息

$username=$_SESSION['username'];
//判断是否有效

if(!isset($username)){

 echo "您未登录!<a href='login.html'>登录</a>";

 exit();

}
//登录时保存的该用户SessionID

$sessin_id=file_get_contents('session_id/'.$username);
//如果当前的SessionID与之前记录的SessionID不匹配

//说明已在别处登录

if(session_id() != $sessin_id){

 //注销当前用户

 unset($_SESSION['username']);

 echo "您已在别处登录!<a href='login.html'>从新登录</a>";

 exit();

}else{

 echo "欢迎您:".$username;

 echo " <a href='logout.php'>注销</a>";

}
echo "<p>--这是登录之后才能看到的内容--</p>";

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

 <title>登录</title>

</head>

<body>

 <form method="post" action="login.php">

  用户名:<input name="username"><br>

  密 码:<input name="password" type="password"><br>

  <input type="submit" value="登录">

 </form>

 <div>

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

 </div>

</body>

</html>

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

login.php页面代码如下:

<?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程序设计有所帮助。

PHP 相关文章推荐
php读取数据库信息的几种方法
May 24 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
Sep 07 PHP
php抽象类使用要点与注意事项分析
Feb 09 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
PHP7.0版本备注
Jul 23 PHP
8个必备的PHP功能开发
Oct 02 PHP
PHP文件缓存类实现代码
Oct 26 PHP
php断点续传之文件分割合并详解
Dec 13 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
PHP实现通过strace定位故障原因的方法
Apr 29 PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 PHP
php实现utf-8转unicode函数分享
Jan 06 #PHP
windows中为php安装mongodb与memcache
Jan 06 #PHP
phpQuery让php处理html代码像jQuery一样方便
Jan 06 #PHP
php基于表单密码验证与HTTP验证用法实例
Jan 06 #PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 #PHP
phplot生成图片类用法详解
Jan 06 #PHP
写一段简单的PHP建立文件夹代码
Jan 06 #PHP
You might like
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
Javascript基础教程之比较null和undefined值
2016/05/16 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
python实现逻辑回归的方法示例
2017/05/02 Python
python kmeans聚类简单介绍和实现代码
2018/02/23 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
详解java调用python的几种用法(看这篇就够了)
2020/12/10 Python
实习生个人找工作的自我评价
2013/10/30 职场文书
生物科学专业个人求职信范文
2013/12/07 职场文书
食品行业求职人的自我评价
2014/01/19 职场文书
廉政教育的心得体会
2014/09/01 职场文书
医院营销工作计划
2015/01/16 职场文书
大连星海广场导游词
2015/02/10 职场文书
中英文求职信范文
2015/03/19 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python