全棧:用戶登錄驗證,用戶注冊【數據庫】

?前端用戶登錄界面

<!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.pswp.cn/web/14730.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14730.shtml
英文地址,請注明出處:http://en.pswp.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&…