Membuat Sistem Reset Password
Ilustrasi Sistem Reset Password

Advan – Ketika kamu mengembangkan sebuah website atau aplikasi berbasis PHP, fitur reset password menjadi sangat penting. Fitur ini akan membantu pengguna yang lupa password mereka agar bisa kembali mengakses akun tanpa masalah. Bagaimana cara membuat sistem reset password di PHP dengan cepat? Kamu bisa menyelesaikannya dengan beberapa langkah mudah, dan di artikel ini, kita akan bahas semuanya secara rinci.

Selain itu, jika kamu sedang mencari laptop yang pas untuk coding, ADVAN Laptop Notebook Soulmate 14 inch FHD IPS INTEL i3 adalah pilihan yang sangat cocok untuk mendukung produktivitas kamu. Yuk, kita mulai dengan pembuatan sistem reset password di PHP!

Langkah – langkah Membuat Sistem Reset Password di PHP

1. Langkah 1: Persiapan Database untuk Sistem Reset Password

Hal pertama yang harus kamu lakukan adalah menyiapkan database untuk menyimpan data pengguna dan token reset password. Buat tabel bernama users yang menyimpan kolom seperti id, email, password, dan tambahkan satu kolom lagi untuk menyimpan token reset password.

“`sql

CREATE TABLE users (

id INT AUTO_INCREMENT PRIMARY KEY,

email VARCHAR(255) NOT NULL,

password VARCHAR(255) NOT NULL,

reset_token VARCHAR(255) DEFAULT NULL,

reset_token_expiry DATETIME DEFAULT NULL

);

“`

Kolom reset_token digunakan untuk menyimpan token unik yang nantinya akan dikirimkan ke email pengguna ketika mereka meminta reset password. Kolom reset_token_expiry untuk mencatat kapan token ini akan kadaluarsa, sehingga pengguna tidak bisa menggunakan token lama yang sudah tidak valid.

2. Langkah 2: Formulir Permintaan Reset Password

Langkah selanjutnya adalah membuat formulir sederhana di mana pengguna bisa memasukkan alamat email mereka untuk memulai proses reset password. Buat halaman dengan HTML dan PHP sederhana seperti berikut:

“`html

<form method=”post” action=”reset_request.php”>

<label for=”email”>Masukkan Email:</label>

<input type=”email” name=”email” required>

<button type=”submit”>Reset Password</button>

</form>

“`

Di dalam file reset_request.php, kamu perlu memeriksa apakah email yang dimasukkan oleh pengguna ada di database. Jika email ditemukan, buatlah token acak, simpan di database, dan kirim email ke pengguna.

“`php

if ($_SERVER[“REQUEST_METHOD”] == “POST”) {

$email = $_POST[’email’];

// Cek apakah email terdaftar

$stmt = $pdo->prepare(‘SELECT * FROM users WHERE email = ?’);

$stmt->execute([$email]);

$user = $stmt->fetch();

if ($user) {

$token = bin2hex(random_bytes(50)); // Token reset password

$expiry = date(“Y-m-d H:i:s”, strtotime(“+1 hour”)); // Berlaku selama 1 jam

// Simpan token di database

$stmt = $pdo->prepare(‘UPDATE users SET reset_token = ?, reset_token_expiry = ? WHERE email = ?’);

$stmt->execute([$token, $expiry, $email]);

// Kirim email reset password (gunakan mailer library atau fungsi PHP mail())

$resetLink = “https://yourwebsite.com/reset_password.php?token=$token”;

mail($email, “Reset Password”, “Klik link ini untuk reset password: $resetLink”);

echo “Email reset password telah dikirim.”;

} else {

echo “Email tidak ditemukan.”;

}

}

“`

Baca Juga: Cara Mengatur Password MySQL Root di XAMPP

3. Langkah 3: Proses Reset Password

Setelah pengguna menerima email berisi link reset password, mereka akan diarahkan ke halaman untuk memasukkan password baru. Halaman tersebut bisa kamu buat dengan formulir seperti berikut:

“`html

<form method=”post” action=”reset_password.php?token=<?php echo $_GET[‘token’]; ?>”>

<label for=”password”>Masukkan Password Baru:</label>

<input type=”password” name=”password” required>

<button type=”submit”>Simpan Password</button>

</form>

“`

Dalam file reset_password.php, kamu perlu memvalidasi token yang dikirimkan di URL dan memastikan bahwa token tersebut masih valid (tidak kadaluarsa). Jika token valid, simpan password baru ke database dan hapus token tersebut.

“`php

if ($_SERVER[“REQUEST_METHOD”] == “POST”) {

$token = $_GET[‘token’];

$newPassword = password_hash($_POST[‘password’], PASSWORD_DEFAULT);

// Cari pengguna berdasarkan token reset

$stmt = $pdo->prepare(‘SELECT * FROM users WHERE reset_token = ? AND reset_token_expiry > NOW()’);

$stmt->execute([$token]);

$user = $stmt->fetch();

if ($user) {

// Update password dan hapus token

$stmt = $pdo->prepare(‘UPDATE users SET password = ?, reset_token = NULL, reset_token_expiry = NULL WHERE reset_token = ?’);

$stmt->execute([$newPassword, $token]);

 

echo “Password berhasil diubah.”;

} else {

echo “Token reset tidak valid atau sudah kadaluarsa.”;

}

}

“`

Tips Mempercepat Pembuatan Sistem Reset Password

Jika kamu ingin membuat sistem reset password di PHP dengan cepat, pastikan kamu menggunakan framework atau library yang mendukung keamanan dan efisiensi. Kamu bisa mencoba framework seperti Laravel, yang sudah menyediakan fitur bawaan untuk manajemen otentikasi dan reset password. Dengan Laravel, kamu tidak perlu repot membuat sistem reset password dari nol, karena semuanya sudah diatur dengan baik dan aman.

Selain itu, jika kamu sedang mencari perangkat yang bisa mendukung produktivitas dalam coding, terutama untuk proyek-proyek berbasis PHP seperti ini, coba cek ADVAN Laptop Notebook Soulmate 14 inch FHD IPS INTEL i3. Laptop ini memiliki performa yang solid untuk coding, dengan layar full HD IPS yang nyaman dipakai dalam waktu lama.

Itulah langkah-langkah cara membuat sistem reset password di PHP dengan cepat. Mulai dari menyiapkan database, membuat formulir permintaan reset password, hingga proses mengubah password, semuanya bisa kamu lakukan dengan relatif mudah. Jika kamu ingin sistem yang lebih cepat dan aman, pertimbangkan untuk menggunakan framework seperti Laravel yang sudah dilengkapi dengan fitur reset password bawaan.

Jangan lupa, untuk meningkatkan produktivitas kamu dalam coding, cek laptop ADVAN Laptop Notebook Soulmate 14 inch FHD IPS INTEL i3 yang pas banget buat kamu!***

Editor: Andik Chefasa

Leave a Reply

Your email address will not be published. Required fields are marked *