prepare("SELECT * FROM admin_users WHERE username = ?"); $stmt->execute([$username]); $admin = $stmt->fetch(); if ($admin && password_verify($password, $admin['password_hash'])) { // Step 1 Success $_SESSION['temp_admin_id'] = $admin['id']; $_SESSION['temp_admin_username'] = $admin['username']; $_SESSION['temp_admin_role'] = $admin['role']; $_SESSION['temp_admin_secret'] = $admin['google2fa_secret']; if (empty($admin['google2fa_secret'])) { // Not setup 2FA yet, go to setup $_SESSION['admin_logged_in'] = true; $_SESSION['admin_id'] = $admin['id']; $_SESSION['admin_username'] = $admin['username']; $_SESSION['admin_role'] = $admin['role']; unset($_SESSION['temp_admin_id'], $_SESSION['temp_admin_username'], $_SESSION['temp_admin_role'], $_SESSION['temp_admin_secret']); header("Location: setup_2fa.php"); exit; } else { $step = 2; // Move to 2FA step } } else { $error = "ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง"; } } elseif (isset($_POST['login_step_2'])) { $code = $_POST['code2fa'] ?? ''; $secret = $_SESSION['temp_admin_secret']; if ($ga->verifyCode($secret, $code, 2)) { // Success $_SESSION['admin_logged_in'] = true; $_SESSION['admin_id'] = $_SESSION['temp_admin_id']; $_SESSION['admin_username'] = $_SESSION['temp_admin_username']; $_SESSION['admin_role'] = $_SESSION['temp_admin_role']; unset($_SESSION['temp_admin_id'], $_SESSION['temp_admin_username'], $_SESSION['temp_admin_role'], $_SESSION['temp_admin_secret']); header("Location: index.php"); exit; } else { $error = "รหัส Google Authenticator ไม่ถูกต้อง"; $step = 2; // Stay at step 2 } } } ?>