ช่วยดูเกี่ยวกับการเปลียนรหัสผ่านหน่อยครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ช่วยดูเกี่ยวกับการเปลียนรหัสผ่านหน่อยครับ

ช่วยดูเกี่ยวกับการเปลียนรหัสผ่านหน่อยครับ
จาก code ติดปัญหาตรงที่เมื่อมีการกรอกรหัสผ่านเดิมลงไป กลับมีการเเจ้งเตือนว่ารหัสผ่านเดิมไม่ถูกต้อง รบกวนเเนะนำเพิ่มเติมด้วยครับ

$cus_id = isset($_GET['cus_id']);
$cus_origi_pass = $_POST['cus_origi_pass'];
$hash_origi_password = md5($cus_origi_pass);
$cus_new_pass = $_POST['cus_new_pass'];
$hash_new_password = md5($cus_new_pass);
$cus_confirm_pass = $_POST['cus_confirm_pass'];

$sql = "SELECT * FROM customer WHERE cus_password ='$hash_origi_password'  "; //ตรวจรหัสผ่านเก่าว่าตรงกับที่อยู่ในฐานข้อมูลหรือไม่
$result = mysqli_query($con, $sql);

if ($cus_origi_pass == "") {
    echo "<script>alert('คุณยังไม่ได้กรอกรหัสผ่านเดิม');window.location='Cus_Edit_Pass.php';</script>";
} else if ($hash_origi_password == "1") {
    if ($cus_new_pass != $cus_confirm_pass) {  //เช็คว่ารหัวผ่านใหม่ตรงกับที่ยืนยันหรือไม่ เมื่อรหัสผ่านไม่ตรง
        echo "<script>alert('รหัสผ่านใหม่กับการยืนยันรหัสผ่านไม่ตรงกัน');window.location='Cus_Edit_Pass.php';</script>";
    } else if (mysqli_num_rows($result) == 1) {  //ถ้ารหัสผ่านตรง
        if (checkPassword($password)) {   //ตรวจสอบว่ารหัสผ่านมีข้อความผสมตัวเลข
            $sqlUp = "UPDATE customer SET cus_password WHERE cus_id ='$cus_id'";
            $relUp = mysqli_query($con, $sqlUp);
            echo "<script>alert('รหัสผ่านถูกเปลี่ยนเรียบร้อยแล้ว');window.location='Manage_Cus.php';</script>";
        } else {
            echo "<script>alert('รหัสผ่านต้องมีทั้งอักษรและตัวเลข และยาวอย่างน้อย 8 ตัวอักษร');window.location='Cus_Edit_Pass.php';</script>";
        }
    }
} else {
    echo "<script>alert('คุณกรอกรหัสผ่านเดิมไม่ถูกต้อง');window.location='Cus_Edit_Pass.php';</script>";
}


Antineww 16-01-2019 16:45:27

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
เรียงลำดับเงื่อนไขตามความสำคัญ ก่อนนำไปใช้
 
แนวทางประมาณนี้
 
$cus_id = isset($_GET['cus_id']);
$cus_origi_pass = $_POST['cus_origi_pass'];
$hash_origi_password = md5($cus_origi_pass);
$cus_new_pass = $_POST['cus_new_pass'];
$hash_new_password = md5($cus_new_pass);
$cus_confirm_pass = $_POST['cus_confirm_pass']; 


ต้องกรอกรหัสผ่านเก่า และรหัสผ่านใหม่ ไม่กรอก แจ้งเตือน
if(pw_old!="" && pw_new!=""){ // กรอกทั้งสองมาแล้ว
	if(checkPasswrod(pw_new)){ // ตรวจสอบรหัสผ่าน ใหม่ รูปแบบถูกต้อง

		$sql_update="
			UPDATE customer SET 
			cus_password='$hash_new_password' WHERE cus_id ='$cus_id'
			AND cus_password='$hash_origi_password'
		";
		if($mysqli->query($sql_update)){ // มีการคิวรี่อัพเพทข้อมูล
			if($mysqli->affected_rows>0){ // การคิวรี่มีการเปลี่ยนแปลงค่า
				 // แจ้งแก้ไขรหัสผ่านเรียบร้อยแล้ว
			}else{ // การคิวรี่ไม่มีการเปลี่ยนแปลงค่า เช่น กรณีเราอัพเดทค่าเดิม
				 // แจ้งให้เปลี่ยนรหัสผ่านใหม่ ไม่ซ้ำรหัสผ่านเดิม
			}
		}else{
			// แจ้งรหัสผ่านเก่าไม่ถูกต้อง
		}	
	
	}else{
		// ไม่ถูกต้อง แจ้งเตือนรูปแบบรหัสผ่านใหม่ให้ถูกต้อง
	}
}else{
	// เตือนให้กรอกทั้ง pw เก่า และใหม่ ที่จะแก้ไข
}	


ninenik 16-01-2019
 ความคิดเห็นที่ 2
ขอบคุณครับ


Antineww 16-01-2019 21:45
 ความคิดเห็นที่ 3
ขอความรู้เพิ่มเติมหน่่อยครับ ทำไมตรง WHERE จะต้องมีการอ้างอิงจาก ทั้ง id เเละ password ครับ

$sql_update="UPDATE customer SET  cus_password='$hash_new_password' 
WHERE cus_id ='$cus_id' AND cus_password='$hash_origi_password'";


Antineww 16-01-2019 21:53
 ความคิดเห็นที่ 4
เป็นการตรวจสอบ password เก่าพร้อมอัพเดท password ใหม่ไปในตัว
ซึ่งถ้าอัพเดทไม่สำเร็จ ก็หมายความว่า password เก่าไม่ถูกต้อง


ninenik 17-01-2019
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ