Skjuling av passord ved registrering på PHP
Passord-inndatafeltet er vanligvis et
input med type password, der
de innskrevne tegnene skjules under stjerner.
Dette er gjort slik at en ondsinnet person
ikke kan kikke på brukerens passord over
skulderen i øyeblikket av registrering.
Å skjule passordet på denne måten er selvfølgelig bra, men det er imidlertid et problem - brukeren ser ikke hva han/hun skriver inn. Han/hun kan ta feil ved inntasting av et tegn og registrere seg med feil passord, enn det han/hun ønsket. Dette vil være trist :(, ettersom han/hun deretter ikke vil kunne logge inn på nettstedet.
Det finnes en standard løsning på dette problemet: brukeren vises to inndatafelt for passord-inntasting - i det første feltet skriver han/hun inn passordet, og i det andre feltet - bekreftelsen av det, det vil si det samme passordet en gang til:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Oppgaven til nettstedet vårt er å sjekke at passordet og dets bekreftelse stemmer overens, ettersom det er logisk at brukeren i dette tilfellet skrev inn akkurat det som han/hun ønsket å skrive inn:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// registrerer
} else {
// viser melding om at de ikke stemmer overens
}
}
?>
Modifiser koden din slik at ved sending av skjemaet sammenlignes passordet med dets bekreftelse. Hvis de stemmer overens - fortsetter vi registreringen, og hvis de ikke stemmer overens - viser vi en melding om dette.