การซ่อนรหัสผ่านเมื่อลงทะเบียนด้วย 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 {
// แสดงข้อความว่าไม่ตรงกัน
}
}
?>
ปรับเปลี่ยนโค้ดของคุณ เพื่อให้เมื่อส่ง ฟอร์ม รหัสผ่านจะถูกเปรียบเทียบกับการยืนยัน หากตรงกัน - ก็ดำเนินการลงทะเบียนต่อ แต่ถ้าไม่ตรงกัน - ให้แสดงข้อความ เกี่ยวกับเรื่องนี้