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 23 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
Jun 21 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
destoon官方标签大全
Jun 20 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 PHP
浅谈PHP错误类型及屏蔽方法
May 27 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
Yii框架日志记录Logging操作示例
Jul 12 PHP
php微信公众号开发之简答题
Oct 20 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 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
测试PHP连接MYSQL成功与否的代码
2013/08/16 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
简单的python协同过滤程序实例代码
2018/01/31 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
python编程嵌套函数实例代码
2018/02/11 Python
python爬虫之自动登录与验证码识别
2020/06/15 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
python加载自定义词典实例
2019/12/06 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
医务工作者先进事迹材料
2014/01/26 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
初三学习决心书
2014/03/11 职场文书
司仪主持词两篇
2014/03/22 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
商业用房租赁协议书
2014/10/13 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
分享提高 Python 代码的可读性的技巧
2022/03/03 Python