Membuat Reset Password Menggunakan PHP dan PHPMailer Part1

28/05/2019    Shelli Ripati    1316     Website

Membuat Reset Password Menggunakan PHP dan PHPMailer Part1

Reset password adalah mengubah password dengan password baru dikarenakan lupa password. Nah dalam kasus ini saya akan membahas tentang Cara Membuat Reset Password Menggunakan PHP dan PHPMailer. Teman-teman bisa download PHPMailer disini.

Jika sudah maka selanjunya untuk  Membuat Reset Password Menggunakan PHP dan PHPMailer Part1  teman-teman buat dua table di database dengan nama admin dan reset_password seperti pada gambar di bawah ini.

Tabel admin

  

Tabel reset_password

 

Lalu buat file config.php untuk koneksi databasenya seperti berikut ini.

<?php

$host="localhost";

$user="dumet";

$pass="school";

$dbName="test";

$conn = mysqli_connect($host, $user, $pass, $dbName);

if(!$conn){

                "Connection:Failed".mysqli_connect_error();

}

?>

Langkah selanjunya kita akan membuat tampilan forget.php seperti pada script di bawah ini.

<!doctype html>

<html lang="en">

  <head>

    <!-- Bootstrap CSS -->

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

    <title>Hello, world!</title>

  </head>

  <body>

    <div class="container">

      <div class="row">

        <div class="col-12">

          <h1>Cara Membuat Reset Password Menggunakan PHPMailer</h1>

            <form action="action/reset-pass.php" method="post">

              <div class="form-group">

                  <label>Email Address</label>

                  <input class="form-control" type="email" name="email" placeholder="Email">

              </div>

              <button class="btn btn-success" type="submit" name="reset_pass">submit</button>

            </form>

        </div>

      </div>

    </div>

  </body>

</html>

Jika ditampilkan dihalaman browser maka akan seperti pada gambar di bawah ini.

Oke jika sudah maka selanjutnya teman-teman buat folder action yang berisi file reset-pass.php untuk mengirimkan link yang berisi kode acak melalui gmail.

<?php 

include "include/config.php";

use PHPMailer\PHPMailer\PHPMailer;

use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/Exception.php';

require 'PHPMailer/src/PHPMailer.php';

require 'PHPMailer/src/SMTP.php';

 

if(isset($_POST["reset_pass"])){

    $emailTo = $_POST["email"]; //email kamu atau email penerima link reset

    $code = uniqid(true); //Untuk kode atau parameter acak

    $query = mysqli_query($conn, "INSERT INTO reset_password VALUES ('','$emailTo','$code')");

    if(!$query){ exit("Error");}

    $mail = new PHPMailer(true);                              // Passing `true` enables exceptions

    try {

        //Server settings

        $mail->SMTPDebug = 2;                                 // Enable verbose debug output

        $mail->isSMTP();                                      // Set mailer to use SMTP

        $mail->Host = 'smtp.gmail.com';                     // Specify main and backup SMTP servers

        $mail->SMTPAuth = true;                               // Enable SMTP authentication

        $mail->Username = "shelliripati.dumet@gmail.com";     // SMTP username

        $mail->Password = 'xxxxxxxx';                         // SMTP password

        $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted

        $mail->Port = 587;                                    // TCP port to connect to

        //Recipients

        $mail->setFrom("shelliripati.dumet@gmail.com", "Shelli Ripati"); //email pengirim

        $mail->addAddress($emailTo); // Email penerima

        $mail->addReplyTo("no-reply@gmail.com");

        //Content

        $url = "http://" . $_SERVER["HTTP_HOST"] .dirname($_SERVER["PHP_SELF"]). "/reset?reset_pass=$code"; //sesuaikan berdasarkan link server dan nama file

        $mail->isHTML(true);                                  // Set email format to HTML

        $mail->Subject = "Link reset password";

        $mail->Body    = "<h1>Permintaan reset password</h1><p> Klik <a href='$url'>link ini</a> untuk mereset password</p>" ;

        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

        $mail->send();

        echo 'Link reset password berhasil dikirimkan ke email.';

    } catch (Exception $e) {

        echo 'Message could not be sent.';

        echo 'Mailer Error: ' . $mail->ErrorInfo;

    }

    exit();

}

Maka kita sudah berhasil mengirimkan link untuk reset password keg mail. Langkah selanjutnya akan saya bahas pada article Membuat Reset Password Menggunakan PHP dan PHPMailer  Part2. Semoga dapat bermanfaat dan selamat mencoba.

No data.

Cara Cepat Pintar Membuat Website, Tanpa Perlu Basic IT

Membuat website perusahaan, portal berita, blog, katalog online, dan e-commerce.

Learn More

Cara Cepat Pintar Membuat Website, Tanpa Perlu Basic IT

Membuat website perusahaan, portal berita, blog, katalog online, dan e-commerce.

Learn More