Jelszó elrejtése regisztrációkor PHP-ban
A jelszó mező általában egy
password típusú input elem,
amelyben a beírt karakterek csillagok alá rejtődnek.
Ez azért történik, hogy a rosszindulatú személy
ne tudja kilesni a felhasználó jelszavát a válla
fölött a regisztráció pillanatában.
A jelszó ily módon való elrejtése természetesen jó, de van azonban egy probléma - a felhasználó nem látja, hogy mit ír be. Hibázhat valamilyen karakter beírásakor, és olyan jelszóval regisztrál, amivel nem szeretett volna. Ez szomorú lesz:(, mivel aztán nem fog tudni bejelentkezni az oldalra.
Létezik egy szabványos megoldás erre a problémára: a felhasználónak két jelszó mező jelenik meg - az első mezőbe írja be a jelszót, a második mezőbe pedig annak megerősítését, azaz ugyanazt a jelszót másodszor:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Weboldalunk feladata - ellenőrizni, hogy a jelszó és a megerősítése egyezik-e, mivel logikus, hogy ebben az esetben a felhasználó pontosan azt írta be, amit szeretett volna:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// regisztráljuk
} else {
// kiírjuk az üzenetet az eltérésről
}
}
?>
Módosítsa a kódját úgy, hogy az űrlap elküldésekor a jelszó össze legyen hasonlítva a megerősítésével. Ha egyeznek - folytatjuk a regisztrációt, ha nem egyeznek - akkor pedig jelenjen meg egy üzenet erről.