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 缓存函数代码
Aug 27 PHP
php正则表达式(regar expression)
Sep 10 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
php通过数组实现多条件查询实现方法(字符串分割)
May 06 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
php类的扩展和继承用法实例
Jun 20 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 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
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
php 应用程序安全防范技术研究
2009/09/25 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
YII框架http缓存操作示例
2019/04/29 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
javascript是怎么继承的介绍
2012/01/05 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
js使用心得分享
2015/01/13 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
微信小程序实现tab切换效果
2017/11/21 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Python编写Windows Service服务程序
2018/01/04 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
python数组循环处理方法
2019/08/26 Python
python实现KNN近邻算法
2020/12/30 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
网络书店创业计划书
2014/02/07 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
服务整改报告
2014/11/06 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
稽核岗位职责范本
2015/04/13 职场文书