Salasanan piilottaminen rekisteröitymisessä PHP:llä
Salasanan syöttökenttä on yleensä
input-tyyppiä password, jossa
kirjoitetut merkit piilotetaan tähdillä.
Tämä on tehty siksi, että pahantahtoinen henkilö
ei pysty kurkistamaan käyttäjän salasanaa
olkan takana rekisteröinnin yhteydessä.
Salasanan piilottaminen tällä tavalla on tietysti hyvä, mutta siinä on kuitenkin ongelma - käyttäjä ei näe mitä kirjoittaa. Hän voi tehdä virheen kirjoittaessaan jotain merkkiä ja rekisteröityä väärällä salasanalla, kuin mitä hän halusi. Tämä on surullista:(, koska hän ei sen jälkeen pysty kirjautumaan sivustolle.
On olemassa standardiratkaisu tähän ongelmaan: käyttäjälle näytetään kaksi syöttökenttää salasanalle - ensimmäiseen kenttään hän kirjoittaa salasanan, ja toiseen kenttään - sen vahvistuksen, eli saman salasanan uudelleen:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Sivustomme tehtävänä on tarkistaa, että salasana ja sen vahvistus täsmäävät, koska on loogista, että tässä tapauksessa käyttäjä on kirjoittanut juuri sen, minkä halusi kirjoittaa:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// rekisteröi
} else {
// tulostetaan viesti täsmäämättömyydestä
}
}
?>
Muokkaa koodiasi siten, että lomaketta lähetettäessä salasanaa verrataan sen vahvistukseen. Jos ne täsmäävät - jatkamme rekisteröintiä, ja jos ne eivät täsmää - tulostamme viestin siitä.