prepare('INSERT INTO admin_users (username, password_hash, display_name, email) VALUES (?, ?, ?, ?)'); $stmt->execute([$username, password_hash($password, PASSWORD_DEFAULT), $name, trim((string) ($_POST['email'] ?? '')) ?: null]); audit('create', 'admin_users', (int) db()->lastInsertId()); flash('success', '管理者已新增。'); redirect('admins.php'); } catch (PDOException $e) { $error = '帳號已存在或資料格式不正確。'; } } } elseif ($action === 'toggle') { $id = (int) ($_POST['id'] ?? 0); if ($id === (int) $_SESSION['admin_id']) $error = '不能停用目前登入的帳號。'; else { db()->prepare('UPDATE admin_users SET is_active = 1 - is_active WHERE id = ?')->execute([$id]); audit('toggle', 'admin_users', $id); flash('success', '帳號狀態已更新。'); redirect('admins.php'); } } } $users = db()->query('SELECT id, username, display_name, email, is_active, last_login_at, created_at FROM admin_users ORDER BY id')->fetchAll(); render_header('管理者帳號', 'admins'); ?>
密碼使用不可逆雜湊儲存
停用帳號後將無法登入
| 帳號 | 顯示名稱 | 信箱 | 最後登入 | 狀態 | 操作 |
|---|---|---|---|---|---|
| = h($user['username']) ?> | = h($user['display_name']) ?> | = h($user['email']) ?> | = h($user['last_login_at'] ?? '尚未登入') ?> | = $user['is_active'] ? '啟用' : '停用' ?> |