admin/tags.php

(开头部分) 10KB

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

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

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

$user = Session::getUser();
$tagModel = new Tag();

$error = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';
    $csrfToken = $_POST['csrf_token'] ?? '';
    
    if (!Security::verifyCSRFToken($csrfToken)) {
        $error = '安全验证失败';
    } else {
        switch ($action) {
            case 'create':
                $name = trim($_POST['name'] ?? '');
                $slug = trim($_POST['slug'] ?? '');
                $description = trim($_POST['description'] ?? '');
                
                if (empty($name)) {
                    $error = '请输入标签名称';
                } elseif ($tagModel->findOneBy('name', $name)) {
                    $error = '标签名称已存在';
                } else {
                    if (empty($slug)) {
                        $slug = Security::slugify($name);
                    }
                    
                    $tagModel->create([
                        'name' => $name,
                        'slug' => $slug,
                        'description' => $description
                    ]);
                    Logger::userAction('tag_create', "创建标签: {$name}");
                    Session::setFlash('success', '标签创建成功');
                    header('Location: tags.php');
                    exit;
                }
                break;
                
            case 'update':
                $id = (int)($_POST['id'] ?? 0);
                $name = trim($_POST['name'] ?? '');
                $slug = trim($_POST['slug'] ?? '');
                $description = trim($_POST['description'] ?? '');
                
                $tag = $tagModel->find($id);
                if (!$tag) {
                    $error = '标签不存在';
                } elseif (empty($name)) {
                    $error = '请输入标签名称';
                } else {
后面还有 194 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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