Ẩn mật khẩu khi đăng ký bằng PHP
Trường nhập mật khẩu thường là một input với kiểu password, trong đó
các ký tự được nhập sẽ bị ẩn đi dưới dạng dấu sao.
Việc này được thực hiện để kẻ xấu không thể
nhìn trộm mật khẩu của người dùng qua
vai vào thời điểm đăng ký.
Việc ẩn mật khẩu theo cách này tất nhiên là tốt, nhưng có một vấn đề - người dùng không nhìn thấy những gì họ đang nhập. Họ có thể mắc lỗi khi nhập một ký tự nào đó và đăng ký với mật khẩu không phải là mật khẩu họ muốn. Điều này sẽ rất đáng buồn:(, vì sau đó họ sẽ không thể đăng nhập vào trang web.
Có một giải pháp tiêu chuẩn cho vấn đề này: hiển thị cho người dùng hai input để nhập mật khẩu - vào input đầu tiên họ nhập mật khẩu, và vào input thứ hai - xác nhận mật khẩu, tức là nhập lại mật khẩu đó lần thứ hai:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Nhiệm vụ của trang web chúng ta - kiểm tra xem mật khẩu và xác nhận mật khẩu có khớp nhau không, bởi vì hợp lý mà nói, trong trường hợp này người dùng đã nhập đúng những gì họ muốn nhập:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// đăng ký
} else {
// hiển thị thông báo không khớp
}
}
?>
Sửa đổi mã của bạn sao cho khi gửi biểu mẫu, mật khẩu được so sánh với xác nhận của nó. Nếu chúng khớp - thì tiếp tục đăng ký, còn nếu không khớp - thì hiển thị thông báo về điều đó.