Slaptažodio paslėpimas registruojantis naudojant PHP
Slaptažodio įvedimo laukas paprastai yra
įvesties laukas su tipu password, kuriame
įvesti simboliai paslepiami žvaigždutėmis.
Tai padaryta tam, kad piktavalis
negaliėtų pavyzdžiui per petį pamatyti vartotojo slaptažodį
registracijos metu.
Slaptažodio paslėpimas tokiu būdu, žinoma, yra geras, tačiau yra ir problema - vartotojas nemato, ką jis įveda. Jis gali suklysti įvedęs kurį nors simbolį ir užsiregistruoti ne su tuo slaptažodžiu, su kuriuo norėjo. Tai būtų liūdna :(, nes vėliau jis negalės autorizuotis svetainėje.
Yra standartinis šios problemos sprendimas: vartotojui rodomi du įvesties laukai slaptažodžiui įvesti - į pirmąjį lauką jis įveda slaptažodį, o į antrąjį lauką - jo patvirtinimą, t.y. tą patį slaptažodį antrą kartą:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Mūsų svetainės užduotis - patikrinti, ar slaptažodis ir jo patvirtinimas sutampa, nes logiška, kad šiuo atveju vartotojas įvedė būtent tai, ką norėjo įvesti:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// registruojame
} else {
// išvedame pranešimą apie nesutapimą
}
}
?>
Modifikuokite savo kodą taip, kad siunčiant formą slaptažodis būtų lyginamas su jo patvirtinimu. Jei jie sutampa - tęsiame registraciją, o jei nesutampa - išvedame pranešimą apie tai.