Xây dựng hệ thống đăng ký và đăng nhập
Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 28 tháng 2, 2025
Hệ thống đăng ký và đăng nhập là một phần quan trọng trong hầu hết các ứng dụng web. Bài học này sẽ hướng dẫn cách tạo form đăng ký, lưu thông tin người dùng vào database, xác thực tài khoản khi đăng nhập và sử dụng session để quản lý trạng thái người dùng.

1. Hệ thống đăng ký và đăng nhập
1.1 Thiết kế form đăng ký và lưu thông tin vào database
Tạo bảng users trong MySQL
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
Tạo form đăng ký (register.php)
<form action="register.php" method="POST">
<input type="text" name="username" placeholder="Tên đăng nhập" required>
<input type="email" name="email" placeholder="Email" required>
<input type="password" name="password" placeholder="Mật khẩu" required>
<button type="submit">Đăng ký</button>
</form>
Xử lý đăng ký (register.php)
<?php
session_start();
include 'config.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$email = $_POST["email"];
$password = password_hash($_POST["password"], PASSWORD_DEFAULT);
$stmt = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $email, $password);
if ($stmt->execute()) {
echo "Đăng ký thành công!";
} else {
echo "Lỗi: " . $stmt->error;
}
}
?>
1.2 Xác thực tài khoản khi đăng nhập và sử dụng session
Tạo form đăng nhập (login.php)
<form action="login.php" method="POST">
<input type="text" name="username" placeholder="Tên đăng nhập" required>
<input type="password" name="password" placeholder="Mật khẩu" required>
<button type="submit">Đăng nhập</button>
</form>
Xử lý đăng nhập (login.php)
<?php
session_start();
include 'config.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
$stmt = $conn->prepare("SELECT id, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($password, $row["password"])) {
$_SESSION["loggedin"] = true;
$_SESSION["username"] = $username;
header("Location: welcome.php");
} else {
echo "Sai mật khẩu!";
}
} else {
echo "Không tìm thấy người dùng!";
}
}
?>
1.3 Đăng xuất và hủy session
<?php
session_start();
session_destroy();
echo "Bạn đã đăng xuất.";
?>
2. Kết luận
- Thiết kế form đăng ký và lưu thông tin người dùng vào database.
- Xác thực tài khoản khi đăng nhập bằng session.
- Mã hóa mật khẩu với
password_hash()
để bảo mật dữ liệu người dùng.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com