Skrytí hesla při registraci v PHP
Pole pro zadání hesla obvykle představuje
input s typem password, ve kterém
jsou zadané znaky skryty pod hvězdičkami.
To je provedeno proto, aby útočník
nemohl odkouknout heslo uživatele přes
rameno v okamžiku registrace.
Skrytí hesla tímto způsobem je samozřejmě dobré, ale existuje však problém - uživatel nevidí, co zadává. Může udělat chybu při zadání nějakého znaku a zaregistrovat se s jiným heslem, než chtěl. To bude smutné :(, protože poté nebude moci provést přihlášení na webu.
Existuje standardní řešení tohoto problému: uživateli se zobrazují dva inputy pro zadání hesla - do prvního inputu zadá heslo, a do druhého inputu - jeho potvrzení, tedy stejné heslo podruhé:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Úkolem našeho webu je ověřit, že heslo a jeho potvrzení se shodují, protože je logické, že v tomto případě uživatel zadal právě to, co chtěl zadat:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// registrujeme
} else {
// vypíšeme zprávu o neshodě
}
}
?>
Upravte svůj kód tak, aby při odeslání formuláře bylo heslo porovnáno s jeho potvrzením. Pokud se shodují - pak pokračujeme v registraci, a pokud se neshodují - pak vypište zprávu o tom.