• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

PHP和amp;MySQL基础四:模拟登录Login功能案例

武飞扬头像
长风沛雨
帮助1

目录

一、搭建HTML表单结构

二、封装一个SQL执行方法Conn

三、实现用户登录功能

四、测试功能


MySQL和PHP之间可以进行增删改查的操作,也可以把查询返回的结果给转换成对象或者数组来进行取值

同时,也可以通过HTML的表单结构和PHP的查询语法来进行一个登录的校验


一、搭建HTML表单结构

  1.  
    <form action="" method="post">
  2.  
    <div>
  3.  
    <label for="">账号:</label>
  4.  
    <input type="text" name="userName">
  5.  
    </div>
  6.  
    <div>
  7.  
    <label for="">密码:</label>
  8.  
    <input type="password" name="pwd">
  9.  
    </div>
  10.  
    <input type="submit" value="登录">
  11.  
    <a href="sql实现注册.php">注册</a>
  12.  
    </form>

二、封装一个SQL执行方法Conn

封装一个function函数,把后续的sql语句当作实参进行传递

在该函数中,连接数据库,处理数据库连接异常,统一字符集编码

需要注意的是:在else分支中执行的query()方法,接受方法返回值的$res变量需要提高一个作用域,在else内部第一次声明的话,在外部返回就不写了

  1.  
    //封装数据库请求的方法:接受一个sql语句,返回sql语句的执行结果
  2.  
    function Conn($sql){
  3.  
    $res;
  4.  
    $link = new mysqli('localhost','root','123456','db_test','3306');
  5.  
    if($link->connect_error){ # 判断如果link对象里面的异常不为空
  6.  
    switch($link->connect_error){
  7.  
    case 1045 : echo " 访问被拒绝,可能用户名或者密码错误";
  8.  
    break;
  9.  
    case 1049 : echo " 数据库名称错误";
  10.  
    break;
  11.  
    default:break;
  12.  
    }
  13.  
    }else{
  14.  
    $link->query("SET NAMES utf8"); # 使用连接对象自带的query方法执行sql语句,该sql是用来设置字符集编码
  15.  
    $res = $link->query($sql); //这里的res是在内部的,要提高声明范围
  16.  
    }
  17.  
    mysqli_close($link);
  18.  
    return $res;
  19.  
    }

三、实现用户登录功能

  1.  
    //3、实现功能:用户登录
  2.  
    if($_POST){ //3.1 判断post有没有数据
  3.  
    //3.2 获取表单传递过来的数据
  4.  
    $userName = $_POST['userName'];
  5.  
    $pwd = $_POST['pwd'];
  6.  
    //3.3 判断用户名和密码是否为空
  7.  
    if($userName && $pwd){
  8.  
    //3.5 在有账号数据的前提下,去编写sql语句(先查询指定的姓名)
  9.  
    $selectSql = "SELECT * FROM tb_user WHERE userName='$userName'";
  10.  
    //3.6 用Conn方法去读取该sql语句
  11.  
    $res = Conn($selectSql);
  12.  
    //3.7 去判断这个结果集有没有读取到对应的数据
  13.  
    if($res->num_rows){ # num_rows是读取到记录的条数,如果为0就是没有了
  14.  
    //3.9 去判断密码(读取结果集)
  15.  
    $info = mysqli_fetch_object($res);
  16.  
    //4.0 判断$info中对应的pwd是不是等于post传进来的pwd
  17.  
    if($info->pwd == $pwd){
  18.  
    echo "<script>window.alert('登录成功')</script>";
  19.  
    }else{
  20.  
    echo "<script>window.alert('密码不匹配')</script>";
  21.  
    }
  22.  
    }else{ //3.8 如果没有查询到条数,就是账号不存在
  23.  
    echo "<script>window.alert('账号不存在')</script>";
  24.  
    }
  25.  
    }else{ // 3.4 否则进行提示
  26.  
    echo "<script>window.alert('账号和密码不可为空')</script>";
  27.  
    }
  28.  
    }

四、测试功能

学新通

登录这个账号

学新通

这个登录案例差不多这样子

但是还可以在补充:用户登录成功后跳转到指定页面,同时保存用户登录的数据(会话存储session)

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhkaehf
系列文章
更多 icon
同类精品
更多 icon
继续加载