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横向重复区域显示二法
Sep 25 PHP
PHP求最大子序列和的算法实现
Jun 24 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
基于PHP magic_quotes_gpc的使用方法详解
Jun 24 PHP
destoon之一键登录设置
Jun 21 PHP
smarty内置函数section的用法
Jan 22 PHP
Zend Framework基本页面布局分析
Mar 19 PHP
PHP微信开发之查询微信精选文章
Jun 23 PHP
PHP实现的mongoDB数据库操作类完整实例
Apr 10 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
Admin generator, filters and I18n
2011/10/06 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
H5上传本地图片并预览功能
2017/05/08 Javascript
js微信分享实现代码
2020/10/11 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
在vue中安装使用vux的教程详解
2018/09/16 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
深入理解Javascript中的this关键字
2015/03/27 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
Pandas透视表(pivot_table)详解
2019/07/22 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
学生就业推荐信
2013/11/13 职场文书
计算机专业毕业生推荐信
2013/11/25 职场文书
高二化学教学反思
2014/01/30 职场文书
广告词串烧
2014/03/19 职场文书
个人授权委托书
2014/09/15 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
修辞手法有哪些?
2019/08/29 职场文书
Python 如何实现文件自动去重
2021/06/02 Python