Tạo trang quên mật khẩu với php

Hướng dẫn cách tạo form, phát sinh mật khẩu mới , cập nhật mật khẩu mới vào database và gửi mail cho user

  1. Tạo database và bảng users (nếu chưa có)
    • Tạo database hocPHP
    • Tạo table users có 11 field : id, tendangnhap, matkhau, hoten, email, ngaysinh, phai, ngaydangky, idgroup (0 – thành viên , 1 admin),  active (0 chưa kích hoạt, 1 đã kích hoạt), randomkey
    • Nhập vài users
    • ratvui/Vu1TungPhutG1@y
    • ratbuon/Bu0nTungPhutG1@y
  2. Tạo form
    • Theo hình trên, sử dụng code hỗ trợ của bootstrap:
  3. Xử lý khi submit
    • Hiện $_POST nằng print_r
    • Lấy giá trị email trong $_POST
    • Kiểm tra email có trong db không, không thì báo lỗi, ngược lại thì:
require "PHPMailer-master/src/PHPMailer.php"; 
    require "PHPMailer-master/src/SMTP.php"; 
    require 'PHPMailer-master/src/Exception.php'; 
    $mail = new PHPMailer\PHPMailer\PHPMailer(true);//true:enables exceptions
    try {
        $mail->SMTPDebug = 0; //0,1,2: chế độ debug
        $mail->isSMTP();  
        $mail->CharSet  = "utf-8";
        $mail->Host = 'smtp.gmail.com';  //SMTP servers
        $mail->SMTPAuth = true; // Enable authentication
        $mail->Username = 'emailCủaBạnỞGmail'; // SMTP username
        $mail->Password = 'MậtKhẩuEmailCuaBan';   // SMTP password
        $mail->SMTPSecure = 'ssl';  // encryption TLS/SSL 
        $mail->Port = 465;  // port to connect to                
        $mail->setFrom('emailCủaBạnỞGmail', 'Tên người gửi' ); 
        $mail->addAddress('emailNguoiNhan', 'TênNgườiNhận'); 
        $mail->isHTML(true);  // Set email format to HTML
        $mail->Subject = 'Tiêu đề thư';
        $noidungthu = 'Nội dung thư'; 
        $mail->Body = $noidungthu;
        $mail->smtpConnect( array(
            "ssl" => array(
                "verify_peer" => false,
                "verify_peer_name" => false,
                "allow_self_signed" => true
            )
        ));
        $mail->send();
        echo 'Đã gửi mail xong';
    } catch (Exception $e) {
        echo 'Error: ', $mail->ErrorInfo;
    }