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 相关文章推荐
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
DISCUZ 论坛管理员密码忘记的解决方法
May 14 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
php强制用户转向www域名的方法
Jun 19 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP实现链表的定义与反转功能示例
Jun 09 PHP
tp5框架无刷新分页实现方法分析
Sep 26 PHP
php use和include区别总结
Oct 13 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
php模拟js函数unescape的函数代码
2012/10/20 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
php获取网站根目录物理路径的几种方法(推荐)
2017/03/04 PHP
JavaScript Eval 函数使用
2010/03/23 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
小程序点击图片实现自动播放视频
2020/05/29 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
django 多数据库及分库实现方式
2020/04/01 Python
用python实现名片管理系统
2020/06/18 Python
python将数据插入数据库的代码分享
2020/08/16 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
美国在线乐器和设备商店:Musician’s Friend
2018/07/06 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
安全资金保障制度
2014/01/23 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
原材料检验岗位职责
2014/03/15 职场文书
党员领导干部承诺书
2014/05/28 职场文书
初三英语教学计划
2015/01/23 职场文书
保护校园环境倡议书
2015/04/28 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
《青山不老》教学反思
2016/02/22 职场文书
MySQL基础(一)
2021/04/05 MySQL
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server