admin/pages.php

(开头部分) 24KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php
require_once __DIR__ . '/../core/Session.php';
require_once __DIR__ . '/../core/Security.php';
require_once __DIR__ . '/../core/Logger.php';
require_once __DIR__ . '/../core/Pagination.php';
require_once __DIR__ . '/../app/models/Page.php';

Session::start();
Session::requireLogin();

$user = Session::getUser();
$pageModel = new Page();

$error = '';
$success = Session::getFlash('success');

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';
    $csrfToken = $_POST['csrf_token'] ?? '';
    
    if (!Security::verifyCSRFToken($csrfToken)) {
        $error = '安全验证失败';
    } else {
        switch ($action) {
            case 'create':
                $title = trim($_POST['title'] ?? '');
                $slug = trim($_POST['slug'] ?? '');
                $content = $_POST['content'] ?? '';
                $sortOrder = (int)($_POST['sort_order'] ?? 0);
                $status = $_POST['status'] ?? 'draft';
                
                if (empty($title)) {
                    $error = '请输入页面标题';
                } else {
                    if (empty($slug)) {
                        $slug = Security::slugify($title);
                    }
                    
                    $existing = $pageModel->findOneBy('slug', $slug);
                    if ($existing) {
                        $error = 'URL别名已存在';
                    } else {
                        $pageModel->create([
                            'title' => $title,
                            'slug' => $slug,
                            'content' => $content,
                            'user_id' => $user['id'],
                            'sort_order' => $sortOrder,
                            'status' => $status
                        ]);
                        Logger::userAction('page_create', "创建页面: {$title}");
                        Session::setFlash('success', '页面创建成功');
                        header('Location: pages.php');
                        exit;
                    }
                }
                break;
                
            case 'update':
                $id = (int)($_POST['id'] ?? 0);
后面还有 490 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。