iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
Modern Web

那就來個 PHP、SQL 的學習歷程八哈哈,希望30天後能力可以一起提升系列 第 10

鐵人賽 Day10-- PHP SQL基本語法(五) -- 帳密登入驗證 & mysqli_query

  • 分享至 

  • twitterImage
  •  

前言

昨天知道了怎麼使用 SELECTWHERE 之後,就要來實際做做看啦

(先附上整段程式碼

<?php
    session_start();
    require_once 'db.php';

    $un = $_POST['username'];
    $pad = $_POST['password'];

    //如果使用者名稱和密碼都不為空
    if($un && $pad){
        //檢測資料庫是否有對應的username和password的sql
        $sql = "SELECT * FROM user WHERE username ='$un' and password = '$pad'";
        
        //執行sql
        $result = mysqli_query($link, $sql);
        
        //返回一個數值
        $rows=mysqli_num_rows($result);  

        //0 false 1 true
        if($rows){

            //如果密碼以及帳號一樣,顯示登入成功
            $_SESSION['is_login'] = TRUE;

            //使用PHP來轉址,前往後台
            header('Location: backend.php');

        }else{

            //要不然就是登入失敗
            $_SESSION['is_login'] = FALSE;

            //在session 存一個 msg 變數
            $_SESSION['msg'] = '登入失敗,請確認帳號密碼!!';

            header('Location: member.php');
        }
    }else{
        
        $_SESSION['msg'] = '請輸入帳號或密碼!!';
        //使用 PHP header 來轉址 返回登入頁
        header('Location: member.php');
    }
?>

輸入帳密時的畫面(member.php)

<input placeholder="請輸入帳號" name="username" id="username" type="text">
<input placeholder="請輸入密碼" name="password" id="password" type="text">

驗證(check.php)

必須先使用我們之前講過的POST來抓取輸入的內容

$un = $_POST['username'];
$pad = $_POST['password'];

SELECT抓取所有來自 user資料表的資料
WHERE判斷我們輸入的帳號密碼和資料庫裡的帳號密碼資料是否相等

$sql = "SELECT * FROM user WHERE username ='$un' and password = '$pad'";

mysql_query() 函數

主要是用來判斷資料庫的查詢是否正確,如果正確回傳true,失敗則回傳false
( mysql_query() 必須在成功連結資料庫的情況下使用 )

$result = mysqli_query($link, $sql);

並將結果傳進參數 $resule ,好讓mysqli_num_rows可以使用 $resule 參數,
並將所要查詢的值都傳進 $row 裡

接下來就使用if else去判斷並輸出結果而已
94這麼簡單/images/emoticon/emoticon01.gif

今天就先這樣,那我們鐵人賽Day11見囉!!


上一篇
鐵人賽 Day9-- PHP SQL基本語法(四) -- SELECT 到底在SELECT什麼 & WHERE 基本語法
下一篇
鐵人賽 Day11-- PHP SQL基本語法(六) -- INSERT 基本語法
系列文
那就來個 PHP、SQL 的學習歷程八哈哈,希望30天後能力可以一起提升14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言