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 相关文章推荐
怎样在UNIX系统下安装php3
Oct 09 PHP
PHP mkdir()定义和用法
Jan 14 PHP
如何用php生成扭曲及旋转的验证码图片
Jun 07 PHP
解析php取整的几种方式
Jun 25 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
Yii中的relations数据关联查询及统计功能用法详解
Jul 14 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
Oct 08 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
php简单获取目录列表的方法
2015/03/24 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jquery使用经验小结
2015/05/20 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
Nuxt的路由动画效果案例
2020/11/06 Javascript
Python urlopen()函数 示例分享
2014/06/12 Python
Python生成随机MAC地址
2015/03/10 Python
Python匹配中文的正则表达式
2016/05/11 Python
Python实现按中文排序的方法示例
2018/04/25 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
乐高积木玩具美国官网:LEGO Shop US
2016/09/16 全球购物
迪奥官网:Dior.com
2018/12/04 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
规划编制实施方案
2014/03/15 职场文书
篮球比赛策划方案
2014/06/05 职场文书
文案策划专业自荐信
2014/07/07 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书