Схаванне пароля пры рэгістрацыі на PHP
Поле ўводу пароля звычайна ўяўляе сабой
інпут з тыпам password, у якім
уведзеныя сімвалы схаваюцца пад зорачкамі.
Гэта зроблена для таго, каб зламыснік
не мог падгледзець пароль карыстальніка праз
плеча ў момант рэгістрацыі.
Схаванне пароля такім чынам вядома добра, але ёсць, аднак, праблема - карыстальнік не бачыць, што ўводзіць. Ён можа памыліцца пры ўводзе якога-небудзь сімвала і зарэгістравацца не з тым паролем, з якім ён хацеў. Гэта будзе сумна:(, бо ён затым не зможа аўтарызавацца на сайце.
Існуе стандартнае рашэнне гэтай праблемы: карыстальніку паказваюцца два інпуты для ўводу пароля - у першы інпут ён уводзіць пароль, а ў другі інпут - яго пацвярджэнне, гэта ёсць гэты ж пароль другі раз:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Задача нашага сайта - праверыць, што пароль і яго пацвярджэнне супадаюць, бо лагічна, што ў гэтым выпадку карыстальнік увёў менавіта тое, што хацеў увесці:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// рэгіструем
} else {
// выведзем паведамленне аб несупадзенні
}
}
?>
Мадыфікуйце ваш код так, каб пры адпраўцы формы пароль параўноўваўся з яго пацвярджэннем. Калі яны супадаюць - то працягваем рэгістрацыю, а калі не супадаюць - то выводзім паведамленне аб гэтым.