ขอวิธี คำแนะนำ การรีเซ็ตรหัสผ่าน password-hash กรณี users ลืมรหัสผ่านครับ ต้องการรีเซ็ตรหัสผ่านครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ขอวิธี คำแนะนำ การรีเซ็ตรหัสผ่าน password-hash กรณี users ลืมรหัสผ่านครับ ต้องการรีเซ็ตรหัสผ่านครับ

ขอวิธี คำแนะนำ การรีเซ็ตรหัสผ่าน password-hash กรณี users ลืมรหัสผ่านครับ ต้องการรีเซ็ตรหัสผ่านครับ
ขอวิธี คำแนะนำ การรีเซ็ตรหัสผ่าน password-hash กรณี usres ลืมรหัสผ่านครับ ต้องการรีเซ็ตรหัสผ่านครับ


Tor Channels 10-11-2021 13:28:34

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

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


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


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

 ความคิดเห็นที่ 1
มีหน้าสำหรับแก้ไข หรือ รีเซ็ต รหัสผ่าน ที่อ้างอิงผู้ใช้แบบเข้ารหัส
ส่งลิ้งค์หน้าเปลี่ยนรหัสผ่านหรือรีเซ็ตรหัสผ่านไปทางอีเมล หรือ sms แล้วแต่ว่าใช้แบบไหน


ninenik 10-11-2021
 ความคิดเห็นที่ 2
มีหน้าสำหรับแก้ไข หรือ รีเซ็ต รหัสผ่าน ที่อ้างอิงผู้ใช้แบบเข้ารหัส
1. ตอนนี้ มี table user ครับ ที่สมัครสมาชิก เข้ามาแล้ว แล้วรหัสผ่านถูกเข้ารหัส ใช้เป้น password-hash ครับ
  1.1 หน้ารายงานสามารถ insert,update,delete ข้อมูล user ได้ครับ
  1.2 หน้า form edit disable username,password เพื่อไม่ให้มีการแก้ไขครับ


2. กำลังสร้าง form forgot-password ครับ กำลังหัดครับ


ส่งลิ้งค์หน้าเปลี่ยนรหัสผ่านหรือรีเซ็ตรหัสผ่านไปทางอีเมล หรือ sms แล้วแต่ว่าใช้แบบไหน
อยากลอง2แบบครับ
1. ส่ง link แบบรีเซ็ตรหัสผ่าน ส่งไปทางเมล์ครับ (อยากได้แบบที่ 1 ครับ ส่ง link แบบรีเซ็ตรหัสผ่าน ส่งไปทางเมล์)

2. ส่งรหัสผ่านของ user ไปทางgmail ที่ user ร้องขอครับ โดยไม่รีเซ็ตรหัสผ่าน
(ทำตามจากบทความ PHP Forgot Lost Password and Sending Password to Mail ทำ Form ลืมรหัสผ่าน ด้วย PHP กับ MySQL || เครดิต thaicreate.com 
 
2.2 ลองปรับใช้กับบทความ thaicreate.com แล้ว ขึ้น Warning: mail(): Failed to connect to mailserver at "localhost" port 25 (ต้องใช้ server + host จริง ซึ่งผมไม่มี server + host จริง || ตอนนี้ใช้xampp ครับ setting port แต่ก็ไม่ได้ผลครับ)


Tor Channels 10-11-2021 14:55
 ความคิดเห็นที่ 3
ดูเนื้อหานี้เป็นแนวทาง


บทความแนะนำที่เกี่ยวข้อง
การตั้งค่า mercury ใน xampp สำหรับทดสอบส่งอีเมล บน localhostอ่าน 18,386
ninenik 10-11-2021
 ความคิดเห็นที่ 4
ขอบคุณครับ เดี๋ยวลองไปปรับใช้กับบทความนี้ด้วยครับ || การรีเซ็ตรหัสผ่านใหม่ กรณีเข้ารหัสข้อมูล ตอนที่2


Tor Channels 10-11-2021 15:23
 ความคิดเห็นที่ 5
ศึกษาบทความ การรีเซ็ตรหัสผ่านใหม่ กรณีเข้ารหัสข้อมูล ตอนที่2 
เจอปัญหา sql error ครับ

Fatal error: Uncaught Error: Call to undefined method mysqli::num_rows() in C:xampphtdocscmssystemcmssystemforgot-password.php:7 Stack trace: #0 {main} thrown in C:xampphtdocscmssystemcmssystemforgot-password.php on line 7

forgot-password.php
<?php
require_once('database/connection.php'); 
if(isset($_POST['submit_forgotpassword']) && $_POST['username']!="" && $_POST['email']!=""){
            $sql="SELECT * FROM user WHERE  username = '".trim($_POST['username'])."' 
    OR email = '".trim($_POST['email'])."' ";
            $query=$conn->query($sql);
            if($conn->num_rows($query)>0){
                    $rs=$conn->fetch_array($query);
                    $reset_refer=password_hash(time());
                    $conn->query("
                    UPDATE  user SET 
                    reset_check='".$reset_refer."'
                    WHERE id='".$rs['id']."'
                    ");
                     
                    $htmlContact='<p>อีเมลล์แจ้งขอรับรหัสผ่านใหม่ กรณีลืมรหัสผ่าน และชื่อผู้ใช้ </p>
                    <p>คุณได้ทำการแจ้งลืมรหัสผ่าน และขอรับรห้สผ่านใหม่ ดังนี้</p>
                    <br />
                    ชื่อผู้ใช้ของคุณคือ :'.$rs['username'].'<br />
                    รีเซ็ตรหัสผ่านใหม่ <a href="http://www.example.com/new_password.php?refer='.$reset_refer.'"> http://www.example.com/new_password.php?refer='.$reset_refer.'</a><br />
                    <br />';          
                 
                    $mail = new PHPMailer(true); 
                    $mail->IsMail();        
                     
                     
                    try{
                        $mail->CharSet = "utf-8";            
                        $mail->AddAddress($rs['email'], 'ชื่อผู้รับ'); // ส่งถึง
                        $mail->SetFrom('cms@gmail.com', 'Example.com'); // ส่งจาก
                        $mail->AddReplyTo('cms@gmail.com', 'Example.com'); // ตอบกลับมาที่อีเมลล์
                    //  $mail->AddBCC('yorwebsitemail@gmail.com', 'Example.com');
                        $mail->Subject ="หัวเรื่องอีเมลล์";  //หัวเรื่องอีเมลล์
                        $mail->MsgHTML($htmlContact);  
                        $mail->Send();
                    }catch (phpmailerException $e){
                        $msg_text="เกิดข้อผิดพลาดในการส่งอีเมลล์ กรุณาลองใหม่อีกครั้ง";
                    }catch (Exception $e) {
                        $msg_text="เกิดข้อผิดพลาดในการส่งอีเมลล์ กรุณาลองใหม่อีกครั้ง";
                    }               
                 
            }else{
                $msg_text="ไม่มีอีเมล ในระบบ กรุณาลองใหม่อีกครั้ง";
            }
}
 
?>


Tor Channels 10-11-2021 17:11
 ความคิดเห็นที่ 6

คำสั่ง num_rows() ใช้กับ result ไม่ได้ใช้กับตัว resource connect

ประมาณ $result->num_rows ไม่ใช่ $mysqli->num_rows() สังเกตจาก error จะแจ้งว่า

ใช้คำส่งผิด 



บทความแนะนำที่เกี่ยวข้อง
แนวทางตรวจสอบ error การเชื่อมต่อ และการคิวรี่ข้อมูลจาก databaseอ่าน 44,580
ninenik 10-11-2021
1






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