query('SELECT COUNT(*) FROM users')->fetchColumn(); } function current_user(): ?array { if (empty($_SESSION['uid'])) { return null; } $st = db()->prepare('SELECT id, username FROM users WHERE id=?'); $st->execute([$_SESSION['uid']]); $u = $st->fetch(); return $u ?: null; } function require_login(): void { if (!current_user()) { header('Location: ' . url('login.php')); exit; } } function csrf_token(): string { if (empty($_SESSION['csrf'])) { $_SESSION['csrf'] = bin2hex(random_bytes(16)); } return $_SESSION['csrf']; } function csrf_field(): string { return ''; } function csrf_check(): void { $t = isset($_POST['csrf']) ? (string)$_POST['csrf'] : ''; if (!hash_equals(csrf_token(), $t)) { http_response_code(419); exit('CSRF 校验失败,请刷新页面重试。'); } } /** 统一的后台页面外壳 */ function admin_layout(string $active, string $title, string $body): void { $nav = [ 'sites' => ['网站管理', 'admin/'], 'groups' => ['板块管理', 'admin/?p=groups'], 'engines' => ['搜索引擎', 'admin/?p=engines'], 'settings' => ['系统设置', 'admin/?p=settings'], ]; ?> <?= e($title) ?> · <?= e(site_name()) ?> 后台
后台
退出