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加密解密的代码
Jul 16 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 PHP
PHP以mysqli方式连接类完整代码实例
Jul 15 PHP
PHP安全上传图片的方法
Mar 21 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
php简单备份与还原MySql的方法
May 09 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
Jul 18 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 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执行速度全攻略
2006/10/09 PHP
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
2016/06/13 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
Javascript注入技巧
2007/06/22 Javascript
JavaScript 图像动画的小demo
2012/05/23 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
Python中为什么要用self探讨
2015/04/14 Python
Python中List.count()方法的使用教程
2015/05/20 Python
python中的global关键字的使用方法
2019/08/20 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
Linux文件系统类型
2012/09/16 面试题
电脑教师的自我评价
2013/12/18 职场文书
医药营销个人求职信范文
2014/02/07 职场文书
大学军训感言300字
2014/03/09 职场文书
财产保全担保书范文
2014/04/01 职场文书
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
vue如何清除浏览器历史栈
2022/05/25 Vue.js