Menyembunyikan Kata Laluan semasa Pendaftaran dalam PHP
Medan input kata laluan biasanya merupakan
input dengan jenis password, di mana
aksara yang dimasukkan disembunyikan di bawah simbol bintang.
Ini dilakukan supaya penyerang
tidak dapat memerhati kata laluan pengguna melalui
bahu pada saat pendaftaran.
Menyembunyikan kata laluan dengan cara ini sememangnya baik, tetapi terdapat, bagaimanapun, masalah - pengguna tidak melihat apa yang dimasukkannya. Mereka mungkin tersilap apabila memasukkan aksara tertentu dan mendaftar bukan dengan kata laluan yang mereka inginkan. Ini akan menyedihkan :(, kerana mereka kemudian tidak dapat mengakses laman web.
Terdapat penyelesaian standard untuk masalah ini: pengguna ditunjukkan dua input untuk memasukkan kata laluan - dalam input pertama mereka memasukkan kata laluan, dan dalam input kedua - pengesahannya, iaitu kata laluan yang sama untuk kali kedua:
<form action="" method="POST">
<input name="login">
<input type="password" name="password">
<input type="password" name="confirm">
<input type="submit">
</form>
Tugas laman web kami - untuk memeriksa bahawa kata laluan dan pengesahannya sepadan, kerana secara logik, dalam kes ini pengguna telah memasukkan tepat apa yang ingin dimasukkannya:
<?php
if (!empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['confirm'])) {
if ($_POST['password'] == $_POST['confirm']) {
// daftarkan
} else {
// tampilkan mesej tentang ketidaksesuaian
}
}
?>
Ubah suai kod anda supaya apabila borang dihantar kata laluan dibandingkan dengan pengesahannya. Jika ia sepadan - maka teruskan pendaftaran, dan jika tidak sepadan - maka tampilkan mesej mengenainya.