Xác Thực Người Dùng

Sau khi tạo trang login.php, bước tiếp theo chúng ta sẽ tạo trang authenticate.php. Trang này sẽ xác thực ID và mật khẩu người dùng cung cấp xem có khơp với thông tin hiện có trên database server hay không.

Hiển Thị Thông Tin Biểu Mẫu

Bây giờ mở text editor và tạo file authenticate.php với nội dung như sau:

<html>
<head>
    <title>Xác Thực Người Dùng</title>
    <meta charset="utf-8">
</head>
<body>
<h2>Authenticate</h2>
<div>
    <p>ID: <?php echo $_POST['id']; ?></p>
    <p>Mật khẩu: <?php echo $_POST['password']; ?></p>
</div>
</body>
</html>

Biến $_POST trong PHP là một biến toàn cục global. Kiểu dữ liệu của $_POST là kiểu mảng và được dùng để chứa thông tin của các trường (idpassword) có trong biểu mẫu gửi lên server sử dụng phương thức POST .

Bây giờ quay trở lại địa chỉ http://localhost/hoclaptrinh_org/login.php trên trình duyệt, điền các thông tin admin cho trường ID123456 cho trường mật khẩu và bấm nút gửi. Bạn sẽ thấy kết quả như sau:

PHP - Xác thực người dùng

Tiếp theo, chúng ta sẽ so sánh thông tin người dùng cung cấp và thông tin chúng ta tạo trên CSDL. Nếu chúng giống nhau, chúng ta sẽ chuyển tiếp người dùng sang trang dành cho admin. Ngược lại chúng ta sẽ báo lỗi:

<html>
<head>
    <title>Xác Thực Người Dùng</title>
    <meta charset="utf-8">
</head>
<body>
<h2>Authenticate</h2>
<div>
    <p><strong>ID:</strong> <?php echo $_POST['id'];?></p>
    <p><strong>Mật khẩu:</strong> <?php echo $_POST['password'];?></p>
    <?php
        if ($_POST['id'] == 'GV1258' && $_POST['password'] ==  123456) {
            $adminURL = 'admin.php';
            header('Location: '.$adminURL);
            exit();
        } else {
            echo "<p>Sai ID hoặc mật khẩu</p>";
        }
    ?>
</div>
</body>
</html>

Ở trên đoạn mã:

$adminURL = 'admin.php';
header('Location: '.$adminURL);
exit();

Thực hiện việc chuyển tiếp sử dụng hàm header() trong php. Sau hàm header() chúng ta luôn gọi hàm exit() để kết thúc quá trình thực thi của trang php. Bạn cũng có thể thay bằng hàm die().

Mở lại trang login.php trên trình duyệt. Bây giờ nếu bạn tiếp tục đăng nhập với ID là admin và mật khẩu là 123456 bạn sẽ thấy kết quả hiển thị thông báo nhập sai ID hoặc mật khẩu sau:

Trang Đăng Nhập PHP

Bây giờ quay lại trang login.php một lần nữa và thay giá trị của trường IDGV1258 sau đó bấm nút Gửi bạn sẽ thấy kết quả như sau:

Trang Đăng Nhập PHP

Điều này cho thấy đoạn mã của chúng ta đã chuyển tiếp thành công người dùng về trang admin.php, tuy nhiên vì trang này không tồn tại vào thời điểm này nên chúng ta thấy Apache báo lỗi không tìm thấy URL. Chúng ta sẽ tạo trang admin ở các phần tiếp theo.

Content must not be empty

Related Tutorial