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 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
php学习 函数 课件
Jun 15 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
Zend Framework页面缓存实例
Jun 25 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
php获取网页里所有图片并存入数组的方法
Apr 06 PHP
深入理解PHP中的Streams工具
Jul 03 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
Nov 16 PHP
如何打开php的gd2库
Feb 09 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 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
phpmyadmin操作流程
2006/10/09 PHP
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
深入理解JavaScript定时机制
2010/10/29 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
Python判断变量是否已经定义的方法
2014/08/18 Python
收集的几个Python小技巧分享
2014/11/22 Python
python实现DES加密解密方法实例详解
2015/06/30 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
幼儿园老师辞职信
2014/01/20 职场文书
村官工作鉴定评语
2014/01/27 职场文书
大二学习计划书范文
2014/04/27 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
四查四看整改措施
2014/09/19 职场文书
学校党员干部承诺书
2015/05/04 职场文书
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js