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 中include()与require()的对比
Oct 09 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
PHP采集腾讯微博的实现代码
Jan 19 PHP
php引用返回与取消引用的详解
Jun 08 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
php中error与exception的区别及应用
Jul 28 PHP
PHP获取表单所有复选框的值的方法
Aug 28 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
yii2实现根据时间搜索的方法
May 25 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 PHP
php装饰者模式简单应用案例分析
Oct 23 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
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
PHP下几种删除目录的方法总结
2007/08/19 PHP
php常用Stream函数集介绍
2013/06/24 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
php获取excel文件数据
2017/04/21 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
chrome原生方法之数组
2011/11/30 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
Python中请使用isinstance()判断变量类型
2014/08/25 Python
python实现文本文件合并
2015/12/29 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
Python基于百度AI的文字识别的示例
2018/04/21 Python
浅谈python写入大量文件的问题
2018/11/09 Python
使用python3实现操作串口详解
2019/01/01 Python
python类中super() 的使用解析
2019/12/19 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
市场营销管理制度
2014/01/29 职场文书
花店创业计划书范文
2014/02/07 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
离婚被告答辩状
2015/05/22 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书
python的变量和简单数字类型详解
2021/09/15 Python