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实现小型站点广告管理
Oct 09 PHP
微博短链接算法php版本实现代码
Sep 15 PHP
php实现自动获取生成文章主题关键词功能的深入分析
Jun 03 PHP
php字符串替换函数substr_replace()用法实例
Mar 17 PHP
yii添删改查实例
Nov 16 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 PHP
PHP获取星期几的常用方法小结
Dec 18 PHP
PHP RabbitMQ消息列队
May 11 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去除html标记的原生函数详解
2015/01/27 PHP
php循环table实现一行两列显示的方法
2015/06/04 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
python列表操作实例
2015/01/14 Python
Python闭包实现计数器的方法
2015/05/05 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
python中round函数保留两位小数的方法
2020/12/04 Python
物业管理公司实习生自我鉴定
2013/09/19 职场文书
2013年员工自我评价范文
2013/12/27 职场文书
《雾凇》教学反思
2014/02/17 职场文书
婚礼主持词
2014/03/13 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
CSS实现两列布局的N种方法
2021/08/02 HTML / CSS
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电