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

 前端用户登录界面

<!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表单用于跳转至前端登录页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑版网易云音乐听歌识曲

文章目录 流程 流程 电脑网易云音乐的搜索框旁边就是听歌识曲功能

文件上传巩固及流量分析

1.[GXYCTF2019]BabyUpload 1&#xff09;打开题目也是没有任何提示&#xff0c; 2&#xff09;进入环境&#xff0c;看到下面页面猜测是文件上传漏洞&#xff0c;下面开始传文件 3&#xff09;首先上传一句话木马 a.php&#xff0c;代码如下&#xff1a; 下面这个代码中并没有…

Amesim示例篇-案例1:空间中的铝块散热

前言 本文将通过一个案例继续对Thermal库的元件进一步讲解。 案例1&#xff1a;一个300mm*300mm*1000mm&#xff08;长*宽*高&#xff09;的铝板初始温度为45℃&#xff0c;竖直在环境为25℃的空间内静置60min。对流换热系数设置为5W/m2K。本文将通过两种建模方法对铝块的温度…

微软语音使用小计

简介 使用微软语音可以实现语音转文字和文字转语音。测试了下&#xff0c;使用还是挺方便的。 使用微软语音有两种方式。一种是使用命令行的形式&#xff0c;另一种是调用SDK的方式。 适合使用语音 CLI 的情况&#xff1a; 想在极少设置且无需编写代码的情况下试验语音服务…

最简单的方式解决android studio 模拟器无法联网的问题

最简单的方式解决android studio 模拟器无法联网的问题 看了网上很多解决android studio内置模拟器无法联网的问题&#xff0c;基本上都是在模拟器手机上配置dns&#xff0c;个人试了多种办法也连不上网&#xff0c;现在给出一种&#xff0c;仅需要在命令行操作的解决安卓模拟…

轻松拿捏C语言——二分查找

&#x1f970;欢迎关注 轻松拿捏C语言系列&#xff0c;来和 小哇 一起进步&#xff01;✊ &#x1f308;感谢大家的阅读、点赞、收藏和关注&#x1f495; 目录&#x1f389; 一、介绍&#x1f308; 二、步骤&#x1f319; 三、代码☀️ 一、介绍 二分查找是一种在有序数组中…

【Linux-驱动开发】

Linux-驱动开发 ■ Linux-应用程序对驱动程序的调用流程■ Linux-file_operations 结构体■ Linux-驱动模块的加载和卸载■ 1. 驱动编译进 Linux 内核中■ 2. 驱动编译成模块(Linux 下模块扩展名为.ko) ■ Linux-■ Linux-■ Linux-设备号■ Linux-设备号-分配■ 静态分配设备号…

React Native 之 主题偏好(十一)

如果你的 React Native 版本较新&#xff0c;它提供一个主题API useColorScheme&#xff0c;你可以直接使用它。如果不是&#xff0c;需安装额外的库&#xff0c;如react-native-appearance。 下面是一个使用 react-native-appearance&#xff08;或 useColorScheme&#xff0…

家电维修上门维修小程序怎么搭建制作?

​在家庭生活中&#xff0c;家电的维修问题一直是人们关注的焦点。随着微信小程序的普及&#xff0c;家电维修服务行业也迎来了线上转型的机遇。一款便捷、高效的家电维修上门维修小程序&#xff0c;不仅能为维修服务商带来新的客户&#xff0c;也能为用户带来更便捷的服务体验…

[Algorithm][动态规划][路径问题][下降路径最小和][最小路径和][地下城游戏]详细讲解

目录 1.下降路径最小和1.题目链接2.算法原理详解3.代码实现 2.最小路径和1.题目链接2.算法原理详解3.代码实现 3.地下城游戏1.题目链接2.算法原理详解3.代码实现 1.下降路径最小和 1.题目链接 下降路径最小和 2.算法原理详解 思路&#xff1a; 确定状态表示 -> dp[i][j]的…

用WPS将多张图片生成一个pdf文档,注意参数设置

目录 1 新建一个docx格式的文档 2 向文档中插入图片 3 设置页边距 4 设置图片大小 5 导出为pdf格式 需要把十几张图片合并为一个pdf文件&#xff0c;本以为很简单&#xff0c;迅速从网上找到两个号称免费的在线工具&#xff0c;结果浪费了好几分钟时间&#xff0c;发现需要…

面试-软件工程与设计模式相关,Spring简介

面试-软件工程与设计模式相关&#xff0c;Spring简介 1.编程思想1.1 面向过程编程1.2 面向对象编程1.2.1 面向对象编程三大特征 1.3 面向切面编程1.3.1 原理1.3.2 大白话&#xff1f;1.3.3 名词解释1.3.4 实现 2. 耦合与内聚2.1 耦合性2.2 内聚性 3. 设计模式3.1 设计模型七大原…

【Nodejs-多进程之Cluster】

cluster 模块是 Node.js 提供的一个用于多进程的模块&#xff0c;它可以轻松地创建一组共享同一个服务器端口的子进程&#xff08;worker进程&#xff09;。通过使用 cluster 模块&#xff0c;可以充分利用多核系统&#xff0c;提高应用程序的性能和可靠性。 基本原理 cluste…

#php把pdf文件转成图片#

本地环境 系统&#xff1a;win11 64位 环境&#xff1a;phpStudy PHP版本&#xff1a;8.0.2 矿建&#xff1a;laravel 配置扩展 一、安装imageMagick 下载地址&#xff1a;https://imagemagick.org/script/download.php 安装版本&#xff1a;ImageMagick-最新版本-Q16-HDRI-x64…

Docker: exec命令浅析

简介 Docker exec命令是Docker提供的一个强大工具&#xff0c;用于在正在运行的容器中执行命令。在此将介绍Docker exec命令的用法和示例&#xff0c;帮助大家更好地理解和使用这个命令。 Docker是一种流行的容器化平台&#xff0c;允许用户在容器中运行应用程序。有时候&#…

React开发环境配置详细讲解-04

React环境 前端随着规范化&#xff0c;可以说规范和环境插件配置满天飞&#xff0c;笔者最早接触的是jquery&#xff0c;那个开发非常简单&#xff0c;只要引入jquery就可以了&#xff0c;当时还写了一套UI框架&#xff0c;至今在做小型项目中还在使用&#xff0c;show一张效果…

一款颜值颇高的虚拟列表!差点就被埋没了,终于还是被我挖出来了

大家好&#xff0c;我是晓衡&#xff01; 今天&#xff0c;推荐一款颇有颜值的虚拟列表组件&#xff0c;不然真的被埋没就可惜了&#xff01; 我们先来看下效果&#xff1a; 感觉怎么样&#xff1f;还不错吧&#xff01; 为什么说这个资源差点被埋没呢&#xff1f;因为个朋友找…

用数据,简单点!奇点云2024 StartDT Day数智科技大会,直播见

在充满挑战的2024&#xff0c;企业如何以最小化的资源投入和试错成本&#xff0c;挖掘新的增长机会&#xff0c;实现确定性发展&#xff1f; “简单点”是当前商业环境的应对策略&#xff0c;也是奇点云2024 StartDT Day的核心理念。 5月28日&#xff0c;由奇点云主办的2024 S…

Linux —— 信号量

Linux —— 信号量 什么是信号量P操作&#xff08;Wait操作&#xff09;V操作&#xff08;Signal操作&#xff09;信号量的类型 一些接口POSIX 信号量接口&#xff1a;其他相关命令&#xff1a; 基于循环队列的生产者和消费者模型同步关系 多生产多消费 我们今天接着来学习信号…

【译】组复制和 Percona XtraDB 集群: 常见操作概述

原文地址&#xff1a;Group Replication and Percona XtraDB Cluster: Overview of Common Operations 在这篇博文中&#xff0c;我将概述使用 MySQL Group Replication 8.0.19&#xff08;又称 GR&#xff09;和 Percona XtraDB Cluster 8 (PXC)&#xff08;基于 Galera&…