Mini Project – Tạo form đăng ký thành viên lưu vào session

yanyan

By yanyan

Cập nhật Tháng 9 23, 2025

Chúng ta đã đi một chặng đường kha khá với rất nhiều kiến thức nền tảng: từ xử lý form, GET/POST, kiểm tra dữ liệu, cho tới quản lý session và cookie. Giờ là lúc chúng ta ráp những mảnh ghép đó lại thành một dự án mini – không chỉ để ôn lại kiến thức mà còn giúp bạn cảm nhận cảm giác “code ra một tính năng thật”.

Trong bài này, bạn sẽ tự tay xây dựng một form đăng ký thành viên đơn giản, cho phép người dùng nhập thông tin (họ tên, email, mật khẩu…), sau đó lưu thông tin vào session, và hiển thị lại danh sách các thành viên đã đăng ký trong cùng một phiên duyệt web.


Mục tiêu của bài học

  • Ôn tập cách xử lý form POST.
  • Kiểm tra, làm sạch (sanitize) dữ liệu đầu vào.
  • Lưu thông tin người dùng vào session.
  • Hiển thị danh sách các thành viên đã lưu trong session.

Giao diện dự kiến

Một form gồm các trường sau:

  • Họ và tên
  • Email
  • Mật khẩu
  • Nút “Đăng ký”

Dưới form là bảng hiển thị danh sách thành viên đã đăng ký trong session.


Bắt tay vào code

1. Khởi động session

<?php
session_start();
?>

2. Xử lý khi người dùng gửi form

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = trim($_POST['name'] ?? '');
    $email = trim($_POST['email'] ?? '');
    $password = $_POST['password'] ?? '';

    // Kiểm tra đơn giản
    if ($name && filter_var($email, FILTER_VALIDATE_EMAIL) && $password) {
        $user = [
            'name' => htmlspecialchars($name),
            'email' => htmlspecialchars($email),
            'password' => password_hash($password, PASSWORD_DEFAULT)
        ];

        $_SESSION['members'][] = $user;
        $message = "Đăng ký thành công!";
    } else {
        $error = "Vui lòng điền đầy đủ thông tin hợp lệ.";
    }
}
?>

3. HTML giao diện form

<h2>Form Đăng Ký Thành Viên</h2>

<?php if (!empty($message)): ?>
    <p style="color:green"><?= $message ?></p>
<?php elseif (!empty($error)): ?>
    <p style="color:red"><?= $error ?></p>
<?php endif; ?>

<form method="POST">
    <label>Họ tên:</label><br>
    <input type="text" name="name"><br><br>

    <label>Email:</label><br>
    <input type="email" name="email"><br><br>

    <label>Mật khẩu:</label><br>
    <input type="password" name="password"><br><br>

    <button type="submit">Đăng ký</button>
</form>

4. Hiển thị danh sách thành viên đã đăng ký

<?php if (!empty($_SESSION['members'])): ?>
    <h3>Danh sách thành viên:</h3>
    <table border="1" cellpadding="5">
        <tr>
            <th>Họ tên</th>
            <th>Email</th>
        </tr>
        <?php foreach ($_SESSION['members'] as $member): ?>
            <tr>
                <td><?= $member['name'] ?></td>
                <td><?= $member['email'] ?></td>
            </tr>
        <?php endforeach; ?>
    </table>
<?php endif; ?>

Gợi ý nâng cao (nếu bạn thích)

  • Thêm xác nhận mật khẩu.
  • Kiểm tra email trùng.
  • Cho phép xóa từng người đăng ký khỏi session.
  • Lưu thông tin thành viên vào file .json thay vì session.

Tổng kết

Dự án mini tuy đơn giản nhưng giúp bạn áp dụng rất nhiều kỹ năng từ các bài học trước. Đây chính là cách tốt nhất để ghi nhớ và hiểu sâu kiến thức. Sau bài này, bạn đã có thể tự tin xử lý form, kiểm tra dữ liệu, và quản lý session như một lập trình viên thực thụ rồi đấy!


Chúc mừng bạn đã hoàn thành Chương 2!

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

[global_subscribe_form]

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.