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中的Cannot modify header information 问题
Aug 12 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
php获取bing每日壁纸示例分享
Feb 25 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
Zend Framework教程之资源(Resources)用法实例详解
Mar 14 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
PHP检查端口是否可以被绑定的方法示例
Aug 09 PHP
Thinkphp 5.0实现微信企业付款到零钱
Sep 30 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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
基于PHP array数组的教程详解
2013/06/05 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
javascript静态的url如何传递
2007/05/03 Javascript
JavaScript类和继承 constructor属性
2010/03/04 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
python发送arp欺骗攻击代码分析
2014/01/16 Python
Python读csv文件去掉一列后再写入新的文件实例
2017/12/28 Python
Python实现学生成绩管理系统
2020/04/05 Python
使用python进行拆分大文件的方法
2018/12/10 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
Pygame的程序开始示例代码
2020/05/07 Python
python3实现飞机大战
2020/11/29 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
搞笑获奖感言
2014/01/30 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
2019个人半年工作总结
2019/06/21 职场文书