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 相关文章推荐
支持oicq头像的留言簿(一)
Oct 09 PHP
第十四节--命名空间
Nov 16 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
php json与xml序列化/反序列化
Oct 28 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
浅析PHP文件下载原理
Dec 25 PHP
php验证码的制作思路和实现方法
Nov 12 PHP
利用PHP命令行模式采集股票趋势信息
Aug 09 PHP
php源码的安装方法和实例
Sep 26 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 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 iconv函数的使用详解
2013/06/09 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
用jscript启动sqlserver
2007/06/21 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
后勤自我鉴定
2013/10/13 职场文书
中学教师教育感言
2014/02/21 职场文书
车队司机自我鉴定
2014/03/02 职场文书
校庆接待方案
2014/03/18 职场文书
人资专员岗位职责
2014/04/04 职场文书
贺卡寄语大全
2014/04/11 职场文书
安全施工责任书
2014/08/25 职场文书
关于学习的决心书
2015/02/05 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
海底两万里读书笔记
2015/06/26 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
Python import模块的缓存问题解决方案
2021/06/02 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
Python序列化模块JSON与Pickle
2022/06/05 Python