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 解决utf-8和gb2312编码转换问题
Mar 18 PHP
php的一些小问题
Jul 03 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
php中json_encode UTF-8中文乱码的更好解决方法
Sep 28 PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 PHP
PHP简单获取多个checkbox值的方法
Jun 13 PHP
php基于openssl的rsa加密解密示例
Jul 11 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
Apr 11 PHP
PHP 文件上传限制问题
Sep 01 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学习之字符串比较和查找
2011/04/17 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
Angular2进阶之如何避免Dom误区
2018/04/02 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
pygame实现弹力球及其变速效果
2017/07/03 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
Python日志syslog使用原理详解
2020/02/18 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
婴儿地球:Baby Earth
2018/12/25 全球购物
办公室内勤岗位职责范本
2013/12/09 职场文书
课例研修方案
2014/05/31 职场文书
企业读书活动总结
2014/06/30 职场文书
车间统计员岗位职责
2015/04/14 职场文书
公司搬迁通知
2015/04/20 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
python开发飞机大战游戏
2021/07/15 Python
CentOS安装Nginx并部署vue
2022/04/12 Servers