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 相关文章推荐
将OICQ数据转成MYSQL数据
Oct 09 PHP
PHP验证码类代码( 最新修改,完全定制化! )
Dec 02 PHP
解析PHP工厂模式的好处
Jun 18 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
May 08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
Jun 24 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
ThinkPHP连接数据库的方式汇总
Dec 05 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
php+laravel依赖注入知识点总结
Nov 04 PHP
Yii框架模拟组件调用注入示例
Nov 11 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
一个比较简单的PHP 分页分组类
2009/12/10 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
Chrome Web App开发小结
2014/09/04 PHP
PHP多线程类及用法实例
2014/12/03 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
犀利的js 函数集合
2009/06/11 Javascript
JavaScript 事件记录使用说明
2009/10/20 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
js实现下拉菜单效果
2017/03/01 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
python中子类继承父类的__init__方法实例
2016/12/15 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
基于python实现操作git过程代码解析
2020/07/27 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
市级绿色学校申报材料
2014/08/25 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
答谢酒会主持词
2015/07/02 职场文书