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程序中的常见漏洞进行攻击(上)
Oct 09 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
关于PHP中Object对象的笔记分享
Jun 28 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
php提交post数组参数实例分析
Dec 17 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
php unlink()函数使用教程
Jul 12 PHP
PHP封装的完整分页类示例
Aug 21 PHP
PHP的mysqli_stmt_init()函数讲解
Jan 24 PHP
PHP生成图表pChart的示例解析
Jul 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
PHP下使用CURL方式POST数据至API接口的代码
2013/02/14 PHP
PHP中file_exists使用中遇到的问题小结
2016/04/05 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
用JQuery调用Session的实现代码
2010/10/29 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
python 数据加密代码
2008/12/24 Python
python模块之re正则表达式详解
2017/02/03 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
Python上下文管理器和with块详解
2017/09/09 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
教师三严三实学习心得体会
2014/10/11 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
二年级数学教学反思
2016/02/16 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
Spring Bean是如何初始化的详解
2022/03/22 Java/Android
分享几个简单MySQL优化小妙招
2022/03/31 MySQL