Sebagai developer yang aplikasi kita tidak terkoneksi dengan email, agak sulit untuk melakukan reset password. Karena biasanya jika kita mereset password maka link reset akan dikirimkan menggunakan email.
Untuk Limesurvey 6, saya pernah membuat posting reset password dengan mengambil link yang di kirim ke email.
Namun kali ini saya akan membuat skrip PHP yang lebih sederhana untuk mengganti password apabila kita lupa password tanpa harus menggunakan email.
<?php
// === Konfigurasi database ===
$host = 'localhost';
$db = 'nama_database_limesurvey';
$user = 'nama_user_db';
$pass = 'password_user_db';
$charset = 'utf8mb4';
// === Akun yang ingin di-reset ===
$username = 'admin'; // Ganti dengan username kamu
$newPassword = 'passwordbaru'; // Password baru
// === Koneksi PDO ===
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
die("Koneksi gagal: " . $e->getMessage());
}
// === Ambil user ID ===
$stmt = $pdo->prepare("SELECT uid FROM lime_users WHERE users_name = ?");
$stmt->execute([$username]);
$user = $stmt->fetch();
if (!$user) {
die("User '$username' tidak ditemukan.");
}
$uid = $user['uid'];
// === Generate hash dengan bcrypt ===
$hashedPassword = password_hash($newPassword, PASSWORD_BCRYPT);
// === Update password ===
$update = $pdo->prepare("UPDATE lime_users SET password = ? WHERE uid = ?");
$update->execute([$hashedPassword, $uid]);
echo "Password berhasil diubah untuk user '$username'.";
?>
Demikian.

