diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/.codebuddy/models.json b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/.codebuddy/models.json deleted file mode 100644 index 2e3cc30..0000000 --- a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/.codebuddy/models.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "models": [ - { - "id": "kimi-for-coding", - "name": "kimi-for-coding", - "vendor": "user", - "url": "https://api.kimi.com/coding/v1", - "apiKey": "sk-kimi-OLoO20UJ8D3hPtywZqitU6zQO6edvWXhrRcWynoQFWBsmf38slzCG3ZbhvhLZOeS", - "supportsToolCall": true, - "supportsImages": true, - "supportsReasoning": false, - "temperature": 1 - }, - { - "id": "kimicode", - "name": "kimicode", - "vendor": "user", - "url": "https://api.kimi.com/coding/v1", - "apiKey": "sk-kimi-1sl2dMlwHcDAM5epuy4EHXhlehH38tcZxzqyOXAK7Og81HofBAcmYnW86KOd9Hdr", - "supportsToolCall": true, - "supportsImages": true, - "supportsReasoning": true, - "temperature": 1 - }, - { - "id": "mimo-v2.5-pro", - "name": "mimo-v2.5-pro", - "vendor": "user", - "url": "https://token-plan-cn.xiaomimimo.com/v1", - "apiKey": "tpqqgst8uxezjxw070kyv57vo4ayjm97go9jqk7fh", - "supportsToolCall": true, - "supportsImages": true, - "supportsReasoning": false - }, - { - "id": "deepseek-v4-pro", - "name": "DeepSeek-V4 Pro", - "vendor": "user", - "url": "https://api.deepseek.com/chat/completions", - "apiKey": "sk-4456a067934f4a2a9582d0f579c7b231", - "supportsToolCall": true, - "supportsImages": false, - "supportsReasoning": true - } - ] -} - diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin.html b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin.html deleted file mode 100644 index 68e4dd5..0000000 --- a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - -后台管理 - 笔记小站 - - - - - -
-
-

⚙️ 后台管理

-
-
- - - - -
-
-
- -
- - - - - - diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_categories.php b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_categories.php new file mode 100644 index 0000000..234115a --- /dev/null +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_categories.php @@ -0,0 +1,217 @@ + + + + + + 分类管理 - 后台 - 笔记小站 + + + + + + +
+ + +
+
+
+

📂 分类管理

+ +
+
+ + + + + + + + + + + + + +
ID图标名称颜色操作
+
+
+
+
+ + + + + + + +
+ + + + + diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_comments.php b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_comments.php new file mode 100644 index 0000000..e775a63 --- /dev/null +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_comments.php @@ -0,0 +1,120 @@ + + + + + + 评论管理 - 后台 - 笔记小站 + + + + + + +
+ + +
+
+
+

💬 评论管理

+
+
+ + + + + + + + + + + + + + +
ID笔记用户内容时间操作
+
+
+
+
+ + + + +
+ + + + + diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_notes.php b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_notes.php new file mode 100644 index 0000000..a0f3633 --- /dev/null +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_notes.php @@ -0,0 +1,227 @@ + + + + + + 笔记管理 - 后台 - 笔记小站 + + + + + + +
+ + +
+
+
+

📝 笔记管理

+ +
+
+ + + + + + + + + + + + + + +
ID标题分类作者时间操作
+
+
+
+
+ + + + + + + +
+ + + + + diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_sidebar.php b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_sidebar.php new file mode 100644 index 0000000..881d497 --- /dev/null +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_sidebar.php @@ -0,0 +1,18 @@ + + diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_users.php b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_users.php new file mode 100644 index 0000000..1e105d1 --- /dev/null +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/admin_users.php @@ -0,0 +1,316 @@ + + + + + + + 用户管理 - 后台 - 笔记小站 + + + + + + + +
+ + +
+
+
+

👥 用户管理

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
ID头像用户名邮箱角色时间操作
+ + +
+
+
+
+
+ + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/css/style.css b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/css/style.css index 68e900e..04de97d 100644 --- a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/css/style.css +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/css/style.css @@ -543,7 +543,78 @@ input, textarea, select { font-family: inherit; outline: none; } .badge-user { background: #e0e7ff; color: #4f46e5; } .badge-category { background: #d1fae5; color: #059669; } -/* ==================== Admin Tabs ==================== */ +/* ==================== Admin Sidebar Layout ==================== */ +.admin-layout { + display: flex; min-height: calc(100vh - 64px); + max-width: 1280px; margin: 0 auto; padding: 1.5rem; + gap: 1.5rem; +} + +.admin-sidebar { + width: 220px; flex-shrink: 0; + background: var(--bg-card); border-radius: var(--radius-lg); + border: 1px solid var(--border); padding: 1rem; + height: fit-content; position: sticky; top: 80px; + animation: fadeInUp 0.4s ease both; +} + +.admin-nav { display: flex; flex-direction: column; gap: 0.25rem; } + +.admin-nav-item { + display: flex; align-items: center; gap: 0.65rem; + padding: 0.75rem 1rem; border-radius: var(--radius-sm); + font-size: 0.9rem; font-weight: 600; color: var(--text-secondary); + transition: all var(--transition); text-decoration: none; +} +.admin-nav-item:hover { background: var(--bg-hover); color: var(--text); } +.admin-nav-item.active { + background: linear-gradient(135deg, var(--primary), #8b5cf6); + color: white; box-shadow: var(--shadow-sm); +} +.admin-nav-item span { font-size: 1.1rem; } + +.admin-main { + flex: 1; min-width: 0; + animation: fadeInUp 0.4s 0.05s ease both; +} + +.admin-panel { + background: var(--bg-card); border-radius: var(--radius-lg); + border: 1px solid var(--border); overflow: hidden; +} + +.admin-panel-header { + display: flex; align-items: center; justify-content: space-between; + padding: 1.25rem 1.5rem; + border-bottom: 1px solid var(--border); +} +.admin-panel-header h3 { + font-size: 1.1rem; font-weight: 700; + display: flex; align-items: center; gap: 0.4rem; +} + +.admin-panel-body { padding: 0; } + +.admin-table { width: 100%; border-collapse: collapse; } +.admin-table thead { background: var(--bg); } +.admin-table th { + text-align: left; padding: 0.75rem 1.25rem; + font-size: 0.78rem; font-weight: 700; color: var(--text-muted); + text-transform: uppercase; letter-spacing: 0.05em; + border-bottom: 2px solid var(--border); +} +.admin-table td { + padding: 0.85rem 1.25rem; font-size: 0.9rem; + border-bottom: 1px solid var(--border-light); + color: var(--text); +} +.admin-table tbody tr { transition: var(--transition); } +.admin-table tbody tr:hover { background: var(--bg-hover); } +.admin-table tbody tr:last-child td { border-bottom: none; } +.admin-table td.actions { white-space: nowrap; } +.admin-table td.actions .btn + .btn { margin-left: 0.35rem; } + +/* ==================== Admin Tabs (legacy) ==================== */ .admin-header { text-align: center; padding: 2rem 0 1.5rem; animation: fadeInUp 0.5s ease both; diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/function/admin.php b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/function/admin.php new file mode 100644 index 0000000..0a73a0d --- /dev/null +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/function/admin.php @@ -0,0 +1,33 @@ + 10004, 'status' => 'error', 'message' => '数据库连接失败']); + exit; +} + +// 判断是否admin登录 +session_start(); +if (!isset($_SESSION['username'])) { + echo ""; + exit; +} +if ($_SESSION['username'] != 'admin') { + echo ""; + exit; +} + +// 获取所有的用户信息 +if($action=='getUsers'){ + $sql = "select * from users"; + $result = mysqli_query($conn, $sql); + $users = mysqli_fetch_all($result, MYSQLI_ASSOC); + echo json_encode($users); +} +?> \ No newline at end of file diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/function/user.php b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/function/user.php index 465e23f..85a143f 100644 --- a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/function/user.php +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/function/user.php @@ -5,6 +5,7 @@ $action = $data['action'] ?? ''; // 处理与用户相关的操作 include 'db.php'; +session_start(); // 如果数据库连接失败,则返回错误信息 /** @var mysqli $conn */ @@ -16,7 +17,7 @@ if (!isset($conn)) { // 测试用户名是否已存在 function testUsername(mysqli $conn, string $username): bool { - $sql = "select * from users where username = '$username'"; // sql注入风险 + $sql = "select * from users where username = '$username' and status = 1"; // sql注入风险 $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { return true; @@ -30,15 +31,16 @@ if ($action == 'register') { $username = $data['username']; $password = $data['password']; $email = $data['email']; + $role = isset($data['role']) ? $data['role'] : 'user'; if (testUsername($conn, $username)) { echo json_encode(['code' => 10001, 'status' => 'error', 'message' => '用户名已存在']); } else { - $sql = "insert into users (username, password, email) values ('$username', '$password', '$email')"; + $sql = "insert into users (username, password, email, role) values ('$username', '$password', '$email', '$role')"; $result = mysqli_query($conn, $sql); if ($result) { echo json_encode(['code' => 0, 'status' => 'success', 'message' => '注册成功']); } else { - echo json_encode(['code' => 10002, 'status' => 'error', 'message' => '注册失败']); + echo json_encode(['code' => 10002, 'status' => 'error', 'message' => '注册失败', 'sql'=>$sql]); } } } @@ -51,7 +53,36 @@ if ($action == 'login') { $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { echo json_encode(['code' => 0, 'status' => 'success', 'message' => '登录成功']); + $_SESSION['username'] = $username; } else { echo json_encode(['code' => 10003, 'status' => 'error', 'message' => '用户名或密码错误']); } } + +// delete的逻辑 +if ($action == 'delete') { + $id = $data['id']; + $sql = "update users set status = 0 where id = $id"; + $result = mysqli_query($conn, $sql); + if ($result) { + echo json_encode(['code' => 0, 'status' => 'success', 'message' => '删除成功']); + } else { + echo json_encode(['code' => 10005, 'status' => 'error', 'message' => '删除失败']); + } +} + + +// update的逻辑 +if ($action == 'update') { + $id = $data['id']; + $username = $data['username']; + $email = $data['email']; + $role = $data['role']; + $sql = "update users set username = '$username', email = '$email', role = '$role' where id = $id"; + $result = mysqli_query($conn, $sql); + if ($result) { + echo json_encode(['code' => 0, 'status' => 'success', 'message' => '更新成功']); + } else { + echo json_encode(['code' => 10006, 'status' => 'error', 'message' => '更新失败']); + } +} \ No newline at end of file diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/js/common.js b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/js/common.js index 1c5fbd5..6285d47 100644 --- a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/js/common.js +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/js/common.js @@ -25,7 +25,7 @@ function renderNavbar() { if (!nav) return; nav.innerHTML = '🏠 首页' + - '⚙️ 后台管理' + + '⚙️ 后台管理' + '✍️ 注册' + '🔑 登录'; } diff --git a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/login.html b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/login.html index 914aaa5..f260dde 100644 --- a/03.数据库/03.数据库开发项目代码示例/01.笔记网站/login.html +++ b/03.数据库/03.数据库开发项目代码示例/01.笔记网站/login.html @@ -62,9 +62,15 @@ }).then(res => res.json()).then(data => { if (data.code == 0) { showToast('登录成功', 'success'); - setTimeout(() => { - window.location.href = '/'; - }, 1000); + if (username == 'admin') { + setTimeout(() => { + window.location.href = '/admin_categories.php'; + }, 1000); + }else{ + setTimeout(() => { + history.go(-1); + }, 1000); + } return } showToast(data.message, 'error'); return;