query('SELECT COUNT(*) FROM users')->fetchColumn() > 0; $err = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $u = trim((string)($_POST['username'] ?? '')); $p = (string)($_POST['password'] ?? ''); if ($u === '' || $p === '') { $err = '请输入用户名和密码'; } elseif (mb_strlen($p) < 4) { $err = '密码至少 4 位'; } elseif (!$hasAdmin) { // 首次创建管理员 $st = db()->prepare('INSERT INTO users (username, password_hash, created_at) VALUES (?,?,?)'); $st->execute([$u, password_hash($p, PASSWORD_DEFAULT), date('Y-m-d H:i:s')]); $_SESSION['uid'] = (int)db()->lastInsertId(); header('Location: ' . url('admin/')); exit; } else { // 登录校验 $st = db()->prepare('SELECT * FROM users WHERE username=? LIMIT 1'); $st->execute([$u]); $row = $st->fetch(); if ($row && password_verify($p, $row['password_hash'])) { $_SESSION['uid'] = (int)$row['id']; header('Location: ' . url('admin/')); exit; } $err = '用户名或密码错误'; } } $title = $hasAdmin ? '登录' : '初始化管理员'; ?> <?= e($title) ?> · <?= e(site_name()) ?>