Xác thực đơn giản qua cơ sở dữ liệu bằng PHP
Hãy cùng triển khai một cơ chế xác thực đơn giản nhất dựa trên cơ sở dữ liệu, tạm thời không có đăng ký. Thay vì đăng ký người dùng, chúng ta sẽ chỉ nhập sẵn tên đăng nhập và mật khẩu của họ vào một bảng trong cơ sở dữ liệu:
| id | login | password |
|---|---|---|
| 1 | user | 12345 |
| 2 | admin | 123 |
Bây giờ hãy tạo một biểu mẫu để nhập tên đăng nhập và mật khẩu:
<form action="" method="POST">
<input name="login">
<input name="password" type="password">
<input type="submit">
</form>
Bây giờ hãy viết mã sẽ kiểm tra xem biểu mẫu đã được gửi hay chưa và, nếu đã gửi, kiểm tra xem trong cơ sở dữ liệu có người dùng với tên đăng nhập và mật khẩu như vậy không:
<?php
if (!empty($_POST['password']) and !empty($_POST['login'])) {
$login = $_POST['login'];
$password = $_POST['password'];
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
if (!empty($user)) {
// người dùng đã được xác thực
} else {
// sai tên đăng nhập hoặc mật khẩu
}
}
?>
Hãy triển khai cơ chế xác thực được mô tả ở trên. Thực hiện sao cho, nếu người dùng đã vượt qua quá trình xác thực - một thông báo về điều này sẽ được hiển thị, còn nếu không thông qua - thì thông báo rằng tên đăng nhập hoặc mật khẩu đã nhập không đúng.
Hãy sửa đổi mã sao cho trong trường hợp xác thực thành công, biểu mẫu nhập mật khẩu và tên đăng nhập sẽ không hiển thị trên màn hình.
Hãy sửa đổi mã sao cho trong trường hợp xác thực thành công
sẽ thực hiện chuyển hướng đến trang
index.php.
Hãy sửa đổi mã sao cho trên trang
index.php sẽ hiển thị thông báo về
việc xác thực thành công. Hãy giải quyết nhiệm vụ này thông qua
thông báo flash trên session.