萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 網路程式設計 >> PHP 程式設計

PHP 用戶註冊入門實戰:從建表到數據入庫完整教學

前言

用戶註冊是 PHP 初學者必學的經典案例,它串聯了表單提交、數據驗證、資料庫操作與安全防護等核心知識點。本文將帶你從零構建一個完整的註冊流程,包含資料庫建立、表單處理與數據入庫實作。

一、建立資料庫與資料表

1. 建立資料庫

首先在 MySQL 中建立名為 361way 的資料庫,採用 UTF-8 編碼確保中文相容:

mysql> create database 361way character set utf8;
Query OK, 1 row affected (0.00 sec)

2. 建立會員資料表

創建 tblmember 表,欄位涵蓋姓名、信箱、密碼、生日與性別等基本資料:

CREATE TABLE IF NOT EXISTS `tblmember` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fName` varchar(30) NOT NULL,
  `lName` varchar(30) NOT NULL,
  `email` varchar(50) NOT NULL,
  `password` varchar(60) NOT NULL,
  `birthdate` text NOT NULL,
  `gender` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=10 ;

設計說明: 採用 InnoDB 引擎支援事務,ID 從 10 開始預留前 10 筆,字符集統一使用 UTF-8。

二、後端處理註冊邏輯

前端表單以 POST 方式提交至 register.php,後端核心代碼如下:

<?php
// 建立資料庫連線
mysql_connect("localhost", "root", "123456") or die(mysql_error());
mysql_select_db("361way") or die(mysql_error());

// 獲取表單數據
$fName     = $_POST['fName'];
$lName     = $_POST['lName'];
$email     = $_POST['email'];
$reemail   = $_POST['reemail'];
$password  = sha1($_POST['password']); // 簡單哈希,實際建議用 password_hash()
$month     = $_POST['month'];
$day       = $_POST['day'];
$year      = $_POST['year'];
$gender    = $_POST['optionsRadios'];
$birthdate = $year . '-' . $month . '-' . $day;

// 寫入資料庫
$query = "INSERT INTO tblmember (id, fName, lName, email, password, birthdate, gender)
          VALUES (NULL, '{$fName}', '{$lName}', '{$email}', '{$password}', '{$birthdate}', '{$gender}')";

if (mysql_query($query)) {
    echo "<script type=\"text/javascript\">
            alert(\"New member added successfully.\");
            window.location = \"registration.php\"
          </script>";
} else {
    die("Failed: " . mysql_error());
}
?>

⚠ 安全提醒: 範例使用已棄用的 mysql_* 函數與簡單 SHA1 加密,生產環境請改用 PDO 或 MySQLi 預處理語句,並採用 password_hash() 加密密碼,防止 SQL 注入與洩露。

三、測試驗證

提交表單後若彈出「New member added successfully.」即代表成功。登入 MySQL 查詢:

mysql> select * from tblmember;
+----+-------+-------+------------------+------------------------------------------+-------------+--------+
| id | fName | lName | email            | password                                 | birthdate   | gender |
+----+-------+-------+------------------+------------------------------------------+-------------+--------+
| 10 | test  | yang  | admin@361way.com | a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 | 1997-Jan-28 | Female |
| 11 | aaa   | bbb   | test@91it.org    | 54df472f438b86fc96d68b8454183394ef26b8ac | 1997-Jan-18 | Female |
+----+-------+-------+------------------+------------------------------------------+-------------+--------+
2 rows in set (0.00 sec)

兩筆測試數據已正常寫入,註冊流程打通。

總結與進階建議

  • 實務上務必加入前後端雙重驗證(信箱格式、密碼強度、重複信箱檢查)
  • 改用 mysqli 或 PDO 並啟用預處理語句
  • 密碼採用 password_hash(PASSWORD_BCRYPT) 加密
  • 新增 CSRF Token 防範跨站請求偽造

掌握此流程後,即可延伸至登入驗證、密碼重置、會員中心等核心功能開發。

copyright © 萬盛學電腦網 all rights reserved