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生成缩略图的代码
Jan 12 PHP
php编写一个简单的路由类
Apr 13 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
PHP 之 写时复制介绍(Copy On Write)
May 13 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
实现PHP+Mysql无限分类的方法汇总
Mar 02 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
基于swoole实现多人聊天室
Jun 14 PHP
在Laravel的Model层做数据缓存的实现
Sep 26 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
python冒泡排序算法的实现代码
2013/11/21 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
python字典按照value排序方法
2020/12/28 Python
努比亚手机官网:nubia
2016/10/06 全球购物
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
建设工地安全标语
2014/06/07 职场文书
治安消防安全责任书
2014/07/23 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL