Skrytie hesla pri registrácii v PHP
Pole na zadanie hesla zvyčajne predstavuje
vstup s typom password, v ktorom
zadané znaky sú skryté pod hviezdičkami.
Je to urobené preto, aby útočník
nemohol odpozerať heslo používateľa cez
plece v momente registrácie.
Skrytie hesla týmto spôsobom je samozrejme dobré, ale existuje však problém - používateľ nevidí, čo zadáva. Môže sa pomýliť pri zadaní nejakého znaku a zaregistrovať sa s iným heslom, ako chcel. To bude smutné:(, pretože potom nebude môcť autorizovať na webe.
Existuje štandardné riešenie tohto problému: používateľovi sa zobrazia dva vstupy pre zadanie hesla - do prvého vstupu zadá heslo, a do druhého vstupu - jeho potvrdenie, teda to isté heslo druhý krát:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Úlohou nášho webu - skontrolovať, že heslo a jeho potvrdenie sa zhodujú, pretože je logické, že v tomto prípade používateľ zadal presne to, čo chcel zadať:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// registrujeme
} else {
// vypíšeme správu o nezhode
}
}
?>
Upravte váš kód tak, aby pri odoslaní formulára sa heslo porovnalo s jeho potvrdením. Ak sa zhodujú - tak pokračujeme v registrácii, a ak sa nezhodujú - tak vypíšeme správu o tom.