全栈:用户登录验证,用户注册【数据库】

 前端用户登录界面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="login.php" method="post">
        name: <input type="text" name="name">
        passwd: <input type="password" name="passwd">
        <button type="submit">点击登录</button>
    </form>
    <form action="initialize.php" method="get">
        <button type="submit">数据库初始化</button>
    </form>
</body>
</html>

1.编写form表单,使用post传输表单内容

<1.添加表单控件用于输入用户名和密码

<2.添加提交表单按钮,点击后跳转至 login.php(用户登录验证)

2.编写form表单,用于跳转至数据库初始化界面

PHP连接数据库,创建数据库及所需数据表

<?php
    $address = '127.0.0.1';
    $lname = 'root';
    $lpasswd = 'root';

    $initalize_con = new mysqli($address,$lname,$lpasswd);
    // var_dump($initalize_con);
    if($initalize_con->connect_error){
        die($initalize_con->connect_error);
    }else{
        echo 'DATABASE_connect:ok' . '<hr><br>';
    }

    $sql_database = 'CREATE DATABASE IF NOT EXISTS login DEFAULT CHARSET utf8;';
    $sql_table = 'CREATE TABLE IF NOT EXISTS 
    login.login_tables (
        id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(10) NOT NULL,
        password CHAR(20) NOT NULL                                   
    )DEFAULT CHARSET utf8;';
    $res1 = $initalize_con->query($sql_database);
    $res2 = $initalize_con->query($sql_table);
    if($res1){
        echo 'Statement_1:ok';
    }else{
        var_dump($initalize_con->error);
    }
    if($res2){
        echo '|Statement_2:ok' . '<br><hr>';
    }else{
        var_dump($initalize_con->error);
    }
    $initalize_con->close();
    echo "<form action='initialize.php' method='get'>";
    echo "<button type='submit'>refresh</button>";
    echo "</form>";

    echo "<form action='web_login.html' method='get'>";
    echo "<button type='submit'>login interface</button>";
    echo "</form>";


?>

1.连接数据库,并实例化对象

2.判断数据库连接状态

3.构建sql语句

4.使用mysqli对象内置方法执行sql语句

5.判断语句执行情况

6.关闭数据库连接

7.构建form表单,提交按钮分别用于刷新页面,和重定向到用户登录页

 cookie保存用户输入,连接数据库进行用户登录验证

<?php
    header("content-type:text/html;charset=utf8");
    setcookie("name",$_POST['name']);
    setcookie('passwd',$_POST['passwd']);
    // var_dump($_COOKIE);
    
    $username = $_COOKIE['name'];
    $passwd = $_COOKIE['passwd'];

    function verify($username,$password){
        $address = '127.0.0.1';
        $lname = 'root';
        $lpasswd = 'root';

        $initalize_con = new mysqli($address,$lname,$lpasswd);
        $sql = "SELECT * FROM login.login_tables 
        WHERE name ='$username' AND password = '$password';";
        $res = $initalize_con->query($sql);
        // var_dump($res->num_rows);
        if($res->num_rows){
            return true;
        }else{
            return false;
        }
        $initalize_con->close();
    }
    
    if (empty($passwd) || empty($username)){
        echo '用户名密码为空';
    }else{
        if(verify($username,$passwd)){
            echo '登录成功';
        }else{
            echo '用户名密码错误';
        }
        
    }
    echo "<form action='enroll.php' method='get'>";
    echo "<button type='submit'>点击注册</button>";
    echo "</form>";
    
?>

1.使用cookie保存前端post表单传递数据

2.创建变量接收cookie信息

3.创建函数定义虚参用于构建SQL语句

<1.实例化数据库连接对象

<2.使用预定义虚参,构建sql语句

<3.执行sql语句,并返回结果集对象

<4.通过对象结果集中代表行的属性(num_rows)用于查询结果的判断,并返回不同结果

4.使用多个empty函数判断变量内容是否存在并使用逻辑或进行连接,用于if条件表达式

<1.如果变量一个或多个为空,触发if语句

<2.变量均有值,触发else语句

<3.调用verify函数传入实参,连接数据库判断用户是否存在

5.构建form表单用于指向注册界面

 连接数据库,插入数据,进行用户注册

<?php
    header("content-type:text/html;charset=utf8");
    
    @$username = $_COOKIE['name'];
    @$passwd =  $_COOKIE['passwd'];
    // var_dump($_COOKIE);

    function verify($username,$password){
        $address = '127.0.0.1';
        $lname = 'root';
        $lpasswd = 'root';

        $initalize_con = new mysqli($address,$lname,$lpasswd);
        $sql = "INSERT INTO login.login_tables(name,password)VALUE('$username','$password')";
        $res = $initalize_con->query($sql);
        // var_dump($res->num_rows);
        if($res){
            // var_dump($res);
            return true;
        }else{
            return false;
        }
        $initalize_con->close();
    }
    if (empty($passwd) || empty($username)){
        echo '用户名密码为空';
    }else{
        if(verify($username,$passwd)){
            echo '注册成功';
        }else{
            echo '系统错误';
        }
        
    }
    echo "<form action='web_login.html' method='get'>";
    echo "<button type='submit'>点击跳转登录页</button>";
    echo "</form>";

1.定义变量接收cookie中保存的数据

2.编写函数用于数据库插入数据

<1.编写sql语句并执行并进行变量赋值

<2.调用对象内置方法,执行sql语句

<3.根据语句执行结果,返回不同的布尔值

3.使用empty函数判断用户输入值是否为空,并作为if条件语句

<1.如果为空则输出if语句

<2.不为空,触发else语句,传入实参,进行语句执行结果的判断

4.构造form表单用于跳转至前端登录页

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值