静网PWA视频评论

php实现用户登陆简单实例

2024年01月03日

- txt下载

php实现用户登陆简单实例
  最近学习中要使用PHP+MySql实现简单登录注册,看了很多简单案例后发现,并没有人通过PDO实现简单登录注册,要么就是Mysql和MySqli实现,就算实现了意义也不大,js就可以做的事情,没必要放到PHP中去,我却偏偏不相信,保留着一股倔劲,简单的实现了登录注册,下面是小编为大家整理的php实现用户登陆简单实例,欢迎阅读与收藏。
  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;
  }
  点此跳转
  list_all.php(部分)
  ?
  ?php  session_start();
  if($_SESSION['flag'] == 1){
  if(time() - $_SESSION['time'] > 600){
  echo "登陆超时";
  echo '点此登陆';
  session_destroy();
  exit();
  }else{
  $_SESSION['time'] = time();
  }
  }else{
  echo "未登陆,无权访问!";
  echo '点此登陆';
  session_destroy();
  exit();
  }
  HTML代码(login.html):
  用户登录


  7天内自动登录
  login.PHP:(登陆处理页)
  <?PHP
  header('Content-type:text/html; charset=utf-8');
  // 开启Session
  session_start();
  // 处理用户登录信息
  if (isset($_POST['login'])) {
  # 接收用户的登录信息
  $username = trim($_POST['username']);
  $password = trim($_POST['password']);
  // 判断提交的登录信息
  if (($username == '') || ($password == '')) {
  // 若为空,视为未填写,提示错误,并3秒后返回登录界面
  header('refresh:3; url=login.html');
  echo "用户名或密码不能为空,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
  exit;
  } elseif (($username != 'username') || ($password != 'password')) {
  # 用户名或密码错误,同空的处理方式
  header('refresh:3; url=login.html');
  echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
  exit;
  } elseif (($username = 'username') && ($password = 'password')) {
  # 用户名和密码都正确,将用户信息存到Session中
  $_SESSION['username'] = $username;
  $_SESSION['islogin'] = 1;
  // 若勾选7天内自动登录,则将其保存到Cookie并设置保留7天
  if ($_POST['remember'] == "yes") {
  setcookie('username', $username, time()+7*24*60*60);
  setcookie('code', md5($username.md5($password)), time()+7*24*60*60);
  } else {
  // 没有勾选则删除Cookie
  setcookie('username', '', time()-999);
  setcookie('code', '', time()-999);
  }
  // 处理完附加项后跳转到登录成功的首页
  header('location:index.PHP');
  }
  }
  ?>
  index.PHP(默认主页):
  <?PHP
  header('Content-type:text/html; charset=utf-8');
  // 开启Session
  session_start();
  // 首先判断Cookie是否有记住了用户信息
  if (isset($_COOKIE['username'])) {
  # 若记住了用户信息,则直接传给Session
  $_SESSION['username'] = $_COOKIE['username'];
  $_SESSION['islogin'] = 1;
  }
  if (isset($_SESSION['islogin'])) {
  // 若已经登录
  echo "你好! ".$_SESSION['username'].' ,欢迎来到个人中心!
  ';
  echo "注销";
  } else {
  // 若没有登录
  echo "您还没有登录,请登录";
  }
  ?>
  logout.PHP注销页
  <?PHP
  header('Content-type:text/html; charset=utf-8');
  // 注销后的操作
  session_start();
  // 清除Session
  $username = $_SESSION['username']; //用于后面的提示信息
  $_SESSION = array();
  session_destroy();
  // 清除Cookie
  setcookie('username', '', time()-99);
  setcookie('code', '', time()-99);
  // 提示信息
  echo "欢迎下次光临, ".$username.'
  ';
  echo "重新登录";
  ?>

收藏

相关推荐

清纯唯美图片大全

字典网 - 试题库 - 元问答 - 繁體 - 顶部

Copyright © cnj8 All Rights Reserved.