首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

PHP + MySQL 用戶認證系統入門實例:註冊、登錄、Cookie 驗證與資料庫設計

     編輯:MySQL 資料庫相關知識

系統流程

  1. 用戶訪問登錄頁 → 輸入用戶名/密碼
  2. 未註冊 → 註冊頁創建賬號
  3. 驗證通過 → 設置 Cookie → 進入受保護頁面
  4. 後續頁面驗證 Cookie 合法性

資料庫設計


CREATE DATABASE userinfo;
USE userinfo;
CREATE TABLE usertbl (
  ID INT AUTO_INCREMENT PRIMARY KEY,
  Name VARCHAR(30) NOT NULL,
  PassWord VARCHAR(20) NOT NULL,
  LastLogin VARCHAR(20)
);

核心代碼實現(教學示例,生產環境不可直接使用)

1. 登錄驗證 login.php


請註冊 或 重試";
} else {
    $row = mysql_fetch_array($res);
    $id = $row[0];
    mysql_query("UPDATE usertbl SET lastlogin='$today' WHERE id=$id", $conn);
    setcookie("usercookie", "歡迎你,$name", time()+3600);  # 1小時有效
    echo "登錄成功,請進";
}
?>

2. 註冊 register.php


請登錄";
}
?>

3. Cookie 驗證 cookie.php + welcome.php








關鍵安全缺陷(必須修復才能上線)

缺陷風險修復方案
SQL 直接拼接變量SQL 注入(繞過登錄、刪庫)預處理語句:mysqli_prepare/bind_param 或 PDO::prepare
明文存儲密碼數據洩露即裸奔密碼哈希:password_hash() / password_verify() (PHP 5.5+)
使用棄用 mysql_* 擴展PHP 7+ 不可用遷移至 mysqli 或 PDO
Cookie 存儲敏感信息、無簽名竄改/盜用會話使用 Session (PHP 4+ 原生) + session_start(),或 JWT/簽名 Cookie
無 CSRF/XSS 防護表單劫持、腳本注入CSRF Token、htmlspecialchars() 輸出轉義
無 HTTPS傳輸層竊聽全站強制 TLS 1.2+

現代最佳實踐棧

  • 框架:Laravel / Symfony / ThinkPHP(內置認證體系)
  • 認證:Session + CSRF + 密碼哈希 + 預處理 + HTTPS
  • 授權:RBAC / JWT (API)

總結

本文展示最基礎的「能跑通」邏輯,生產環境嚴禁直接使用。學習重點在於理解「驗證→會話→授權」核心流程,實戰中請直接使用成熟框架認證組件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved