🔐 修改密码
更新您的登录凭证
prepare("SELECT password FROM admins WHERE id = ?"); $stmt->execute([$admin['id']]); $row = $stmt->fetch(); if (!password_verify($old_password, $row['password'])) { $error = '旧密码错误'; } elseif (empty($new_username)) { $error = '用户名不能为空'; } elseif (strlen($new_password) < 6) { $error = '新密码长度至少6位'; } elseif ($new_password !== $confirm_password) { $error = '两次输入的密码不一致'; } else { // 检查用户名是否已被占用(排除自己) $stmt = $db->prepare("SELECT COUNT(*) FROM admins WHERE username = ? AND id != ?"); $stmt->execute([$new_username, $admin['id']]); if ($stmt->fetchColumn() > 0) { $error = '用户名已被占用'; } else { // 更新 $hashed = password_hash($new_password, PASSWORD_DEFAULT); $stmt = $db->prepare("UPDATE admins SET username = ?, password = ? WHERE id = ?"); $stmt->execute([$new_username, $hashed, $admin['id']]); // 更新session中的用户名 $_SESSION['admin_username'] = $new_username; $success = '用户名和密码已更新,请重新登录'; // 可选:强制退出重新登录 // session_destroy(); // header('Location: login.php'); // exit; } } } ?>
更新您的登录凭证