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 相关文章推荐
如何开发一个虚拟域名系统
Oct 09 PHP
php Mysql日期和时间函数集合
Nov 16 PHP
PHP提取中文首字母
Apr 09 PHP
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
Sep 06 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 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 simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
php微信开发之关注事件
2018/06/14 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
javaScript如何生成xmlhttp
2013/12/16 Javascript
jquery动态添加option示例
2013/12/30 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
2019/04/16 jQuery
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
跟老齐学Python之模块的加载
2014/10/24 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
Python matplotlib画图实例之绘制拥有彩条的图表
2017/12/28 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
python代码实现图书管理系统
2020/11/30 Python
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
最好的商品表达自己:Cafepress
2019/09/04 全球购物
颂军魂爱军营演讲稿
2014/09/13 职场文书
2014年科协工作总结
2014/12/09 职场文书
2015年药房工作总结
2015/04/25 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
毕业论文致谢词
2015/05/14 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS