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 相关文章推荐
PHP 和 XML: 使用expat函数(一)
Oct 09 PHP
PHP 面向对象 final类与final方法
May 05 PHP
如何用php生成扭曲及旋转的验证码图片
Jun 07 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
Yii多表联合查询操作详解
Jun 02 PHP
Thinkphp3.2实用篇之计算型验证码示例
Feb 09 PHP
PHP简单实现遍历目录下特定文件的方法小结
May 22 PHP
php获取文章内容第一张图片的方法示例
Jul 03 PHP
微信公众平台开发教程②微信端分享功能图文详解
Apr 10 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 PHP
PHP7数组的底层实现示例
Aug 25 PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 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
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
又一个php 分页类实现代码
2009/12/03 PHP
详解php中的implements 使用
2017/06/13 PHP
PDO::errorInfo讲解
2019/01/28 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
PHP 实现链式操作
2021/03/09 PHP
web前端开发也需要日志
2010/12/09 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
D3.js实现散点图和气泡图的方法详解
2016/09/21 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
基于对象合并功能的实现示例
2017/10/10 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
用pycharm开发django项目示例代码
2019/06/13 Python
python如何将多个PDF进行合并
2019/08/13 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
文明学生事迹材料
2014/01/29 职场文书
高中打架检讨书
2014/02/13 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
高一学生评语大全
2014/04/25 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL