Dölj lösenord vid registrering i PHP
Ett lösenordsinmatningsfält är vanligtvis en
input med typen password, där
inmatade tecken döljs under asterisker.
Detta är gjort så att en obehörig
inte kan kika på användarens lösenord över
axeln vid registrering.
Att dölja lösenordet på detta sätt är naturligtvis bra, men det finns dock ett problem - användaren ser inte vad hen skriver in. Hen kan göra ett fel vid inmatning av ett visst tecken och registrera sig med ett annat lösenord än det hen tänkt sig. Detta blir tråkigt:(, eftersom hen sedan inte kommer att kunna logga in på webbplatsen.
Det finns en standardlösning på detta problem: användaren visas två inputfält för lösenordsinmatning - i det första fältet matar hen in lösenordet, och i det andra fältet - sin bekräftelse, det vill säga samma lösenord en gång till:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Vår webbplats uppgift är att kontrollera att lösenordet och dess bekräftelse stämmer överens, eftersom det är logiskt att användaren i detta fall har angett exakt det som hen avsåg att ange:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// registrera
} else {
// visa meddelande om att de inte matchar
}
}
?>
Modifiera din kod så att när formuläret skickas jämförs lösenordet med dess bekräftelse. Om de matchar - fortsätter vi med registreringen, och om de inte matchar - visa ett meddelande om detta.