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和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 PHP
PHP中的错误处理、异常处理机制分析
May 07 PHP
php中用date函数获取当前时间有误的解决办法
Aug 02 PHP
PHP开发框架kohana中处理ajax请求的例子
Jul 14 PHP
PHP面试题之文件目录操作
Oct 15 PHP
PHP常见的6个错误提示及解决方法
Jul 07 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP实现git部署的方法教程
Dec 19 PHP
php微信公众号开发之现金红包
Apr 16 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
laravel框架查询数据集转为数组的两种方法
Oct 10 PHP
PHP网页缓存技术优点及代码实例
Jul 29 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常用的url处理函数总结
2014/11/19 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
微信小程序 首页制作简单实例
2017/04/07 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
vue调用微信JSDK 扫一扫,相册等需要注意的事项
2021/01/03 Vue.js
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python异步任务队列示例
2014/04/01 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
新教师工作感言
2014/02/16 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
劳动竞赛活动总结
2014/05/05 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
小学生思想品德评语
2014/12/31 职场文书
大连星海广场导游词
2015/02/10 职场文书
社区重阳节活动总结
2015/03/24 职场文书
工程技术员岗位职责
2015/04/11 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
MySQL里面的子查询的基本使用
2021/08/02 MySQL