Wachtwoord verbergen bij registratie in PHP
Een wachtwoordinvoerveld is meestal een
input met type password, waarin
ingevoerde tekens verborgen worden onder sterretjes.
Dit is gedaan zodat een kwaadwillende
niet het wachtwoord van de gebruiker kan afkijken
over de schouder op het moment van registratie.
Het op deze manier verbergen van het wachtwoord is natuurlijk goed, maar er is echter een probleem - de gebruiker ziet niet wat hij invoert. Hij kan een fout maken bij het invoeren van een teken en zich registreren met een ander wachtwoord dan hij wilde. Dit zou jammer zijn:(, omdat hij zich dan niet op de website kan inloggen.
Er bestaat een standaardoplossing voor dit probleem: aan de gebruiker worden twee inputvelden getoond voor het invoeren van het wachtwoord - in het eerste veld voert hij het wachtwoord in, en in het tweede veld - de bevestiging ervan, dat wil zeggen hetzelfde wachtwoord een tweede keer:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
De taak van onze website is - controleren of het wachtwoord en de bevestiging ervan overeenkomen, omdat het logisch is dat de gebruiker in dat geval precies heeft ingevoerd wat hij wilde invoeren:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// registreren
} else {
// toon een bericht dat ze niet overeenkomen
}
}
?>
Pas je code zo aan dat bij het verzenden van het formulier het wachtwoord vergeleken wordt met de bevestiging. Als ze overeenkomen - dan gaan we door met de registratie, en als ze niet overeenkomen - toon dan een bericht hierover.