Ukrywanie hasła podczas rejestracji w PHP
Pole wprowadzania hasła zwykle przedstawia
input z typem password, w którym
wprowadzone znaki są ukrywane pod gwiazdkami.
Jest to zrobione po to, aby przestępca
nie mógł podejrzeć hasła użytkownika przez
ramię w momencie rejestracji.
Ukrywanie hasła w ten sposób oczywiście jest dobre, ale istnieje jednak problem - użytkownik nie widzi, co wprowadza. Może się pomylić przy wprowadzeniu jakiegoś znaku i zarejestrować się nie z tym hasłem, z którym chciał. To będzie smutne:(, ponieważ następnie nie będzie mógł zalogować się na stronie.
Istnieje standardowe rozwiązanie tego problemu: użytkownikowi pokazywane są dwa inputy dla wprowadzenia hasła - w pierwszy input wprowadza hasło, a w drugi input - jego potwierdzenie, to znaczy to samo hasło drugi raz:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Zadaniem naszej strony jest sprawdzenie, czy hasło i jego potwierdzenie się zgadzają, ponieważ logiczne jest, że w tym przypadku użytkownik wprowadził dokładnie to, co chciał wprowadzić:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// rejestrujemy
} else {
// wyświetlimy komunikat o niezgodności
}
}
?>
Zmodyfikuj swój kod tak, aby przy wysyłce formularza hasło było porównywane z jego potwierdzeniem. Jeśli się zgadzają - kontynuujemy rejestrację, a jeśli nie zgadzają się - to wyświetl komunikat o tym.