Afid Arifin – 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.

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 kalian menyiapkan beberapa file berikut yang akan kita gunakan nantinya. File tersebut diantaranya adalah sebagai berikut.
- lost_password.html
- lost_password.php
- connect.php
Selain ketiga file di atas, pertama silahkan kalian buat terlebih dahulu tabel pada database kalian 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, silahkan kalian simak langkah demi langkah membuat fasilitas lupa password dengan menggunakan bahasa pemrograman PHP berikut ini.
Langkah #1: connect.php
Pada langkah pertama, silahkan kalian buat koneksi database dengan memasukkan kode berikut ke dalam file connect.php yang telah dibuat sebelumnya lalu simpan.
<?php $connect = new mysqli('localhost', 'root', '', 'los'); if($connect->errno) { die($connect->errno); } ?>
Langkah #2: lost_password.html
Pada langkah kedua, silahkan kalian 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>
Langkah #3: lost_password.php
Pada langkah ketiga, silahkan kalian 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 kalian modifikasi lebih lanjut lagi karena masih terbilang sederhana yang memang saya tujukan khusus untuk para pemula. Namun, tidak perlu khawatir bahwa di postingan berikutnya akan saya update kembali dengan menyertakan pengiriman link reset via email.
Penutup
Artikel ini merupakan lanjutan sebagai pelengkap untuk tutorial membuat form login dan register dengan PHP dan MySQL.
Demikian artikel pada kesempatan kali ini, semoga apa yang saya bagikan dapat bermanfaat. Sekian dan tunggu update tutorial menarik lainnya seputar dunia pemrograman.