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常用表单验证类用法实例
Jun 18 PHP
Yii中CGridView禁止列排序的设置方法
Jul 12 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
Yii2框架可逆加密简单实现方法
Aug 25 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
Laravel中服务提供者和门面模式的入门介绍
Nov 06 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 PHP
PHP基本语法
Mar 31 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
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
PHP容易忘记的知识点分享
2013/04/30 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
2019/04/27 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
[08:54]《一刀刀一天》之DOTA全时刻18:十九支奔赴西雅图队伍全部出炉
2014/06/04 DOTA
Tensorflow卷积神经网络实例
2018/05/24 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
通过实例学习Python Excel操作
2020/01/06 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
《纸船和风筝》教学反思
2014/02/15 职场文书
消防安全宣传口号
2014/06/10 职场文书
航空学院求职信
2014/06/11 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书