php实现用户登陆简单实例


Posted in PHP onApril 04, 2017

php实现用户登陆简单实例

前言:

最近要完成的最后一个部分,就是对用户提交的数据进行管理,至于管理,那肯定就是管理员的事了,那一定涉及登陆,验证账号权限,账号是否过期等等问题。

所需知识

session,确实是很重要的东西。并且我遇到session不能跨页,修改PHP.ini的session.use_trans_sid = 0值为1。

具体实现

我的后台设计的比较简单,只需输入一个密码即可,这个密码当然是保存在服务器可以更改的啦。所以只需要给session添加两个变量,flag、time。

首先,用flag来确定管理员是否成功登陆,用time确定登陆是否超时。提交密码后,如果正确会给flag赋值为1,time赋值为当前时间。每次进入新的页面或进行操作时会对这两个变量进行判断,首先判断flag值是否为1,不唯一直接提示未登陆,销毁session,如果为1,再判断当前时间-$_SESSION(‘time')是否小于600(10分钟),若大于,提示登陆超时,销毁session;若小于,允许操作,并更新time变量值为当前值。

部分代码

check_pw.php

<?php
session_start();
$_SESSION['flag'] = 0;
$myfile = fopen("passwd","r") or die("Unable to open file!");
$passwd = fgets($myfile);
if(empty($_POST['pass'])){
  echo "不能为空,重新输入";
  $page = "login.html";
}else{
  $pass = $_POST['pass'];
  $passwd = test_input($passwd);
  $pass = test_input($pass);
  if($pass == $passwd){
    echo "口令正确,允许访问";
    $page = "list_all.php";
    $_SESSION['flag'] = 1;
    $_SESSION['time'] = time(); //当前秒数
  }else{
    echo "口令错误,重新输入";
    $page = "login.html";
  }
}

function test_input($date){
  $date = trim($date);
  $date = stripcslashes($date);
  $date = htmlspecialchars($date);
  return $date;
}
?>
  <a href="<?php echo $page;?>" rel="external nofollow" >点此跳转</a>

list_all.php(部分)

<?php
session_start();
if($_SESSION['flag'] == 1){
  if(time() - $_SESSION['time'] > 600){
    echo "登陆超时";
    echo '<a href="login.html" rel="external nofollow" rel="external nofollow" >点此登陆</a>';
    session_destroy();
    exit();
  }else{
  $_SESSION['time'] = time();
  }
}else{
  echo "未登陆,无权访问!";
  echo '<a href="login.html" rel="external nofollow" rel="external nofollow" >点此登陆</a>';
  session_destroy();
  exit();
}
?>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
php中用于检测一个地理IP地址是否可用的代码
Feb 19 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
mac下安装nginx和php
Nov 04 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
PHP扩展mcrypt实现的AES加密功能示例
Jan 29 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 #PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
Apr 03 #PHP
THINKPHP在添加数据的时候获取主键id的值方法
Apr 03 #PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
Apr 03 #PHP
php PDO判断连接是否可用的实现方法
Apr 03 #PHP
php 调用ffmpeg获取视频信息的简单实现
Apr 03 #PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 #PHP
You might like
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
angularjs 处理多个异步请求方法汇总
2015/01/06 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
Openlayers测量距离与面积的实现方法
2020/09/25 Javascript
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
Python 3 判断2个字典相同
2019/08/06 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
python中if及if-else如何使用
2020/06/02 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
几个SQL的面试题
2014/03/08 面试题
旺仔牛奶广告词
2014/03/20 职场文书
党校学习个人总结
2015/02/15 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
详解Spring事件发布与监听机制
2021/06/30 Java/Android
Vue h函数的使用详解
2022/02/18 Vue.js
Python 匹配文本并在其上一行追加文本
2022/05/11 Python