PHP实现会员账号单唯一登录的方法分析


Posted in PHP onMarch 07, 2019

本文实例讲述了PHP实现会员账号单唯一登录的方法。分享给大家供大家参考,具体如下:

情景再现

同一会员账号限制在同一台设备(电脑、手机、Ipad等)上单点登录,重复登录后,原登录访问页面时则直接跳转到登录页面且需要重新登录才能正常访问。

原理分析

A账号在A电脑上登录后,A账号此时又用B电脑再次登录,则A电脑请求页面时,提示“重新登录”的信息,并跳转到登录页面

思路解析:

A账号在A电脑上登录后,把SESSION ID写入TXT文件,每次访问页面时,都做一次校验(比较txt文件的值是否和当前登录的session_id的值相同)

实例

1、入口与校验(index.php)

<?php
session_start();
$uid = 10;
if(is_login($uid)){
 header('location:loginSuccess.php');
}else{
 $getLogSessionId = file_get_contents('session_log/'.$uid.'.txt');
 if($getLogSessionId){
  echo "已在其他地方登录,请重新登录";
  echo "<br>";
  echo "5秒后跳转到登录页面!";
  header("refresh:5;url=login.php");
 }else{
  echo '第一次登录...';
  echo "<br>";
  echo "3秒钟后跳转到登录页面!";
  header("refresh:3;url=login.php");
 }
}
/**
* 通过登录时写入文件session_id和当前登录设备后生成的session_id进行比较,相同则是同一台设备登录,不同则在别的地方登录
*/
function is_login($uid){
 $getLogSessionId = file_get_contents('session_log/'.$uid.'.txt');
 if($getLogSessionId == session_id()){
  return true;
 }else{
  return false;
 }
}

2、登录(login.php)

<?php
session_start();
echo "登录中....";
echo '<br>';
$uid = 10;
file_put_contents('session_log/'.$uid.'.txt',session_id());
echo "登录完成";

3、登录成功(loginSuccess.php)

<?php
echo "我登录成功了!";

4、保存sessionId文件夹(session_log),测试代码,需要手动建一个或者赋予自动生成文件的权限

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
允许phpmyadmin空密码登录的配置方法
May 29 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 PHP
php读取富文本的时p标签会出现红线是怎么回事
May 13 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
Jun 12 PHP
Laravel 5 框架入门(三)
Apr 09 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
分享php多功能图片处理类
May 15 PHP
php实现的http请求封装示例
Nov 08 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
laravel中Redis队列监听中断的分析
Sep 14 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 #PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 #PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
Mar 07 #PHP
PHP使用PDO操作sqlite数据库应用案例
Mar 07 #PHP
php使用fullcalendar日历插件详解
Mar 06 #PHP
PHP封装XML和JSON格式数据接口操作示例
Mar 06 #PHP
浅谈PHP封装CURL
Mar 06 #PHP
You might like
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
php ci框架验证码实例分析
2013/06/26 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
htm调用JS代码
2007/03/15 Javascript
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
2017/03/10 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
实例讲解JS中pop使用方法
2019/01/27 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
python元组操作实例解析
2014/09/23 Python
python分割文件的常用方法
2014/11/01 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
python负载均衡的简单实现方法
2018/02/04 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
C#面试题问题集
2016/04/02 面试题
旅游管理毕业生自荐信
2013/11/05 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
初中差生评语
2014/12/29 职场文书
2016中秋节问候语
2015/11/11 职场文书
2016年春节问候语
2015/11/11 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers