Тіркелу кезіндегі құпия сөзді жасыру 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 {
// сәйкессіздік туралы хабар шығару
}
}
?>
Форма жіберілген кезде құпия сөз оның растауымен салыстырылатындай етіп кодыңызды өзгертіңіз. Егер олар сәйкес келсе - онда тіркеуді жалғастырамыз, ал егер сәйкес келмесе - онда бұл туралы хабарлама шығарыңыз.