PDO::ERRMODE_EXCEPTION] ); } catch (PDOException $e) { die("Koneksi DB gagal: " . $e->getMessage() . "
Edit variabel \$host, \$dbname, \$dbuser, \$dbpass di baris 15-18 file ini."); } // ── Proses form ─────────────────────────────────────────────── $message = ''; $newPassword = 'Admin123'; // password default if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = trim($_POST['username'] ?? ''); $newPassword = trim($_POST['new_password'] ?? ''); if ($username && $newPassword) { // Cek user ada $stmt = $pdo->prepare("SELECT id, username, password FROM users WHERE username = ?"); $stmt->execute([$username]); $user = $stmt->fetch(PDO::FETCH_ASSOC); if ($user) { // Verifikasi apakah password lama cocok (info saja) $testPasswords = ['password', 'admin', 'superadmin', '123456', 'Admin123', 'Password123', $newPassword]; $found = null; foreach ($testPasswords as $p) { if (password_verify($p, $user['password'])) { $found = $p; break; } } // Reset password $hash = password_hash($newPassword, PASSWORD_BCRYPT, ['cost' => 12]); $pdo->prepare("UPDATE users SET password = ? WHERE username = ?") ->execute([$hash, $username]); $message = "
✅ Password berhasil direset!
Username: $username
Password baru: $newPassword
" . ($found ? "Password lama yang cocok: $found" : "Password lama tidak cocok dengan daftar test (mungkin custom)") . "
"; } else { $message = "
❌ Username '$username' tidak ditemukan.
"; } } } // ── Tampilkan semua user ─────────────────────────────────────── $users = $pdo->query("SELECT id, username, email, is_active, LEFT(password,30) as pass_preview FROM users ORDER BY id")->fetchAll(PDO::FETCH_ASSOC); ?> SINERGI - Reset Password

🔑 SINERGI — Reset Password

⚠️ HAPUS file ini setelah selesai! Jangan biarkan file ini ada di server production.

Daftar Users

IDUsernameEmailAktifPassword Hash (30 char)
...

Reset Password