php用户登录验证及效验

本文介绍PHP用户登录验证的过程,包括数据库连接插件和功能文件的编写,以及如何通过创建inc文件夹,将navar.php和sidebar.php公共部分代码分离,实现多页面共享,确保后台切换时仅内容变化,侧边栏导航保持一致。
摘要由CSDN通过智能技术生成

php用户登录验证及效验

登录界面
在这里插入图片描述
后台界面
在这里插入图片描述
代码示例

登录页面代码

<?php

// 载入配置文件
require_once '../config.php';

// // 给用户找一个箱子(如果你之前有就用之前的,没有给个新的)
session_start();

function login () {
   
  // 1. 接收并校验
  // 2. 持久化
  // 3. 响应
  if (empty($_POST['email'])) {
   
    $GLOBALS['message'] = '请填写邮箱';
    return;
  }
  if (empty($_POST['password'])) {
   
    $GLOBALS['message'] = '请填写密码';
    return;
  }

  $email = $_POST['email'];
  $password = $_POST['password'];


  // //设置密码

  // if ( $email !== 'admin@sample.com' ) {
   
  //   $GLOBALS['message'] = '不存在此用户名';
  //   return;
  // }

  // if ( $password !== 'admin') {
   
  //   $GLOBALS['message'] = '用户密码不正确';
  //   return;
  // }

  // 当客户端提交过来的完整的表单信息就应该开始对其进行数据校验
  //1.建立连接
  //2.
  $conn = mysqli_connect(XIU_DB_HOST, XIU_DB_USER, XIU_DB_PASS,XIU_DB_NAME);
  if (!$conn) {
   
    exit('<h1>连接数据库失败</h1>');
  }

  $query = mysqli_query($conn, "select * from users where email = '{$email}' limit 1;");
  if (!$query) {
   
    $GLOBALS['message'] = '登录失败,请重试!';
    return;
  }

  // 获取登录用户
  $user = mysqli_fetch_assoc($query);

    // 存一个登录标识,记录登录标识
  // $_SESSION['is_logged_in'] = true;
  //为了后续可以直接获取当前登录信息,这里直接将用户信息放到 session 中
  $_SESSION['current_login_user'] = $user;

//信息同步
// $_SESSION['current_login_user_id'] = $user['id'];
  if (!$user) {
   
    // 用户名不存在
    $GLOBALS['message'] = '用户名不存在';
    return;
  }

  // 一般密码是加密存储的
  if ($user['password'] !==$password) {
   
    // 密码不正确
    $GLOBALS['message'] = '密码不匹配';
    return;
  }

  //保存SESSION
  

  // 一切OK 可以跳转
  header('Location: /admin/');
}

//判断用户请求
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
   
  login();
}

?>
<!-- <!DOCTYPE html> -->
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <title>Sign in &laquo; Admin</title>
  <link rel="stylesheet" href="/static/assets/vendors/bootstrap/css/bootstrap.css">
  <link rel="stylesheet" href="/static/assets/vendors/animate/animate.css">
  <link rel="stylesheet" href="/static/assets/css/admin.css">
</head>
<body>
  <div class="login">
    <!-- 可以通过在 form 上添加 novalidate 取消浏览器自带的校验功能 -->
    <!-- autocomplete="off" 关闭客户端的自动完成功能 -->
    <form class="login-wrap<?php echo isset($message) ? ' shake animated' : '' ?>" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" autocomplete="off" novalidate>
      <img class="avatar" src="/static/assets/img/default.png">
      <!-- 作为一个优秀的页面开发人员,必须考虑一个页面的不同状态下展示的内容不一样的情况 -->
      <!-- 有错误信息时展示 -->
      <?php if (isset($message
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值