Cara Membuat Fitur Lupa Kata Sandi dengan PHP

Cara Membuat Fitur Lupa Kata Sandi dengan PHP – Kata sandi atau password hilang sering kali dilupakan oleh user ketika akan mencoba autentikasi login ke sebuah sistem. Salah satu fitur yang selalu ada pada sistem login adalah fitur lupa kata sandi atau lost password. Dimana fitur lupa kata sandi sudah pasti harus selalu ada di aplikasi yang kita buat.

Dengan adanya fitur lupa kata sandi pada sistem login, user dapat memperoleh kembali kata sandi yang dilupakan. Dengan kata lain, user akan mendapatkan kata sandi yang baru. Pada tutorial kali ini, saya akan membahas cara membuat fasilitas fitur lupa kata sandi dengan PHP.

Persiapan Bahan yang Diperlukan

Sebelum masuk ke tutorial membuat fitur lupa kata sandi menggunakan bahasa pemrograman PHP, terlebih dahulu Anda menyiapkan beberapa file berikut yang akan kita gunakan nantinya. File tersebut diantaranya adalah sebagai berikut.

  1. lost_password.html
  2. lost_password.php
  3. connect.php

Selain ketiga file di atas, pertama silahkan Anda buat terlebih dahulu tabel pada database Anda dengan struktur sebagai berikut.

CREATE TABLE `users` (
  `id` int(10) NOT NULL,
  `username` varchar(30) NOT NULL,
  `email` varchar(30) NOT NULL,
  `password` varchar(15) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Jika sudah, jangan lupa memasukkan data akun yang ingin kita buat untuk belajar. Anda dapat membuat dengan struktur query SQL berikut ini.

INSERT INTO `users` (`id`, `username`, `email`, `password`)
VALUES (1, 'username', 'email@example.com', 'dummy_password');

Apabila struktur SQL yang dibutuhkan sudah disiapkan, selanjutnya silahkan Anda simak langkah demi langkah membuat fasilitas lupa password dengan menggunakan bahasa pemrograman PHP berikut ini.

Step #1: connect.php

Pada langkah pertama, silahkan Anda buat koneksi database dengan memasukkan kode berikut ke dalam file connect.php yang telah dibuat sebelumnya lalu simpan. Pastikan Anda sesuaikan dengan detail database yang dibuat.

<?php
$connect = new mysqli('localhost', 'root', '', 'los');
if($connect->errno) {
  die($connect->errno);
}
?>

Step #2: lost_password.html

Pada langkah kedua, silahkan Anda masukkan kode HTML berikut ke dalam file lost_password.html yang telah dibuat sebelumnya lalu simpan. File HTML ini akan menampilkan form yang akan digunakan untuk meminta kata sandi yang baru.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Lupa Kata Sandi - Afid Arifin</title>
  </head>
  <body>
    <form method="POST" action="lost_password.php">
      <input type="email" name="email" value="">
      <input type="submit" name="submit" value="Lupa Sandi">
    </form>
  </body>
</html>

Step #3: lost_password.php

Pada langkah ketiga, silahkan Anda masukkan kode PHP berikut ke dalam file lost_password.php yang telah dibuat sebelumnya lalu simpan. File ini akan digunakan untuk memproses permintaan yang terjadi.

<?php
require_once 'connect.php';
if(isset($_POST['submit'])) {
  $email = strip_tags($_POST['email']);
  if(empty($email)) {
    echo 'Harap isi email!';
  } else {
    $q = $connect->query('SELECT * FROM users WHERE email = '.$email.'');
    if(count((array) $q) > 0) {
      $new_password = substr(md5(time()), 0, 6);
      $update = $connect->query("UPDATE users SET password = '".$new_password."' WHERE email = '".$email."'");
      if($update) {
        echo 'Kata sandi baru Anda adalah <b>'.$new_password.'</b>';
      } else {
        echo 'Permintaan gagal!';
      }
    } else {
      echo 'Alamat email tidak ditemukan!';
    }
  }
}
?>

Cara Kerja Fitur Lupa Kata Sandi

Bagaimana cara kerja atau mekanisme dari fitur lupa kata sandi yang telah dibuat di atas? Cara kerja cukup sederhana. Oleh karena itu, tutorial kali ini belum menyertakan pengiriman link reset kata sandi melalui email seperti pada umumnya. Cara kerja program di atas, user meminta kata sandi baru dengan cara memasukkan email.

Jika email tersebut di atas ada maka secara otomatis kata sandi baru akan langsung ditampilkan di layar tanpa dikirim via email terlebih dahulu. Perlu dicatat, kata sandi sebelumnya akan hilang. Program ini dapat Anda modifikasi lebih lanjut lagi karena masih terbilang sederhana yang memang saya tujukan khusus untuk para pemula.

Penutup

Artikel ini merupakan lanjutan sebagai pelengkap untuk tutorial membuat form login dan register dengan PHP dan MySQL. Anda dapat mempelajarinya terlebih dahulu apabila tutorial ini masih sedikit membuat bingung.

Demikian artikel pada kesempatan kali ini, semoga apa yang saya bagikan dapat bermanfaat. Sekian dan tunggu update tutorial menarik lainnya seputar dunia pemrograman.

Bagikan Ke

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *