|
|
|
เกี่ยวกับระบบการเปลี่ยนรหัสผ่านครับ จนมุมครับ อัพเดทข้อมูลไม่ได้ |
|
|
|
|
|
|
|
ตรงนี้มันไม่เป็นจริง จึงวิ่งไปเงื่อนไขนั้น mysql_num_rows($result) == 1
จากที่อ่านโค้ดคิดว่า ผิดที่ตัวข้อมูล นายควรจะล้างข้อมูลในฐานข้อมูล ตารางนี้ออกก่อน tbl_user
แล้วลองแอดใหม่ เพื่อมาเทสดูว่าหายไหม
อีกจุด นายไม่ได้โชว์ว่า
<input name="hidUserId" type="hidden" id="hidUserId" value="<?php echo $user_id; ?>">
ค่าตรงนี้เอามายังไง คำสั่งเป็นยังไง อาจจะผิดที่จุดนี้ก็ได้
ลอง echo ค่าตัวแปรออกมาดูหลายๆจุด ก็จะเจอเอง
เอาค่าพวกนี้ echo มาดู
$userId ทั้งในตัวฟอร์ม และ ตัวโค้ดในฟังก์ชั่น
นี่ด้วย mysql_num_rows($result) == 1
และบางครั้งการเซทค่า server มีผลทำให้ จำเปนต้องส่งค่า พารามิเตอร์เข้าไปใน ฟังก์ชั่น userChangePassword()
|
|
|
|
|
Date :
2015-11-11 09:05:41 |
By :
HolyTyrael |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกท่านครับ ทำได้แล้วครับนำความรู้จาก NewbieXYZ ในเรื่องของการปรับ flowcontrol
และ Guest ในเรื่องของการ echo หาจุดผิดพลาดต่างๆ ครับ
จึงได้ code มาดังนี้ ก็ขอโพสให้คนอื่นนำไปประยุกต์ใช้กันอีกทีนะครับ
Code (PHP)
if (isset($_POST['txtOldPassword'])) {
if ($_POST['txtOldPassword'] == '') {
setError('ท่านยังไม่ได้กรอกรหัสผ่านเดิม');
} else if ($_POST['txtUserPassword'] == '') {
setError('ท่านยังไม่ได้กรอกรหัสผ่านใหม่');
} else if ($_POST['txtConfirmPassword'] == '') {
setError('ท่านยังไม่ได้ยืนยันรหัสผ่านใหม่');
} else if ($password != $confirmPassword) {
setError('รหัสผ่านใหม่กับการยืนยันรหัสผ่านไม่ตรงกัน');
} else {
$userId = (int)$_POST['hidUserId'];
$oldPass = $_POST['txtOldPassword'];
$hashOldPassword = md5($oldPass);
$confirmPassword = $_POST['txtConfirmPassword'];
$password = $_POST['txtUserPassword'];
$hashPassword = md5($password);
$sql = "SELECT user_id
FROM tbl_user
WHERE user_password = '$hashOldPassword' AND user_id = $userId";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_num_rows($result);
if (($row) == 1) {
if ($hashOldPassword !== $row['user_password']) {
$sqlUpdate = "UPDATE tbl_user
SET user_password = '$hashPassword'
WHERE user_id = $userId";
mysql_query($sqlUpdate);
setSuccess('ท่านได้เปลี่ยนแปลงรหัสผ่านเรียบร้อยแล้ว');
}
} else {
setError('ท่านกรอกรหัสผ่านเดิมไม่ถูกต้อง');
}
}
}
|
|
|
|
|
Date :
2015-11-11 22:35:49 |
By :
obstinatez |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ประวัติการแก้ไข 2015-11-12 03:39:09
|
|
|
|
Date :
2015-11-12 03:38:19 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|