小陈资源 V1.0 文档
小陈资源 V1.0 知识库文档
版本:V1.0 · 更新日期:2026-08-10 技术栈:原生 PHP 8 + MySQL 5.7+ · 无框架 · 无 Composer
目录
1. 项目概述
小陈资源是一套完整的资源下载站程序,面向个人站长,覆盖「内容发布 → 用户下载 → 积分/高级版变现 → 营销拉新」的完整闭环。
- 前台:分类浏览、全文检索、资源详情下载、评论互动、AI 问答、积分商城、抽奖活动
- 用户中心:资料/安全、激活高级版、收藏、发布、AI 历史、评论、浏览历史、下载记录、积分
- 后台:20 个管理模块,全部可视化配置
设计原则
- 极简:原生 PHP,无框架依赖,一个站点一个目录
- 本地优先:无外部 CDN 依赖(图标字体、静态资源全部本地化)
- 自适应:扁平化多彩设计,手机/平板/PC 通吃
- 可二次开发:单文件模块 + 完整中文注释
2. 快速开始
2.1 环境要求
| 组件 | 要求 |
|---|---|
| PHP | 8.0 及以上(推荐 8.2) |
| MySQL | 5.7 及以上(utf8mb4) |
| Web 服务器 | Nginx / Apache 均可 |
| 扩展 | PDO MySQL、mbstring、fileinfo、curl(AI 功能用) |
2.2 安装步骤
- 将程序文件复制到站点根目录(如
WWW/你的站点/) - 浏览器访问
http://你的域名/install.php - 填写 数据库配置(Host / 端口 / 库名 / 账号 / 密码;数据库可不存在,向导自动创建)
- 填写 管理员账号(用户名 / 邮箱 / 密码,密码至少 6 位)
- 点击「开始安装」,等待完成
- 登录
http://你的域名/admin.php开始使用
安装信息会写入
config.local.php,不会改动config.php默认值。 上线前建议删除install.php与install/目录。
2.3 更换数据库
直接编辑 config.local.php 中的 DB_* 常量后刷新即可,无需改动其它文件。
2.4 伪静态(可选)
后台「基础设置 → URL 伪静态」开启后,在 Nginx 站点配置粘贴:
location / {
if (!-e $request_filename) {
rewrite ^/detail-([0-9]+)\.html$ /detail.php?id=$1 last;
rewrite ^/category-([a-z0-9_-]+)\.html$ /category.php?cat=$1 last;
}
}
默认使用动态 URL(detail.php?id=1),零配置即可运行。
3. 目录结构
站点根目录/
├── index.php 前台首页
├── category.php 分类浏览 / 条件筛选
├── detail.php 资源详情 / 下载 / 评论
├── search.php 全文检索
├── login.php 登录 / 注册
├── user.php 用户中心(12+ 面板)
├── publish.php 发布资源(富文本 / 置顶 / 上传)
├── ai-chat.php AI 智能问答
├── lucky-wheel.php 抽奖活动中心
├── store.php 积分商城
├── notice.php 站点公告
├── page.php 协议页(用户协议 / 隐私 / 免责)
├── admin.php 管理后台(20 模块)
├── install.php 安装向导
├── config.php 主配置(数据库 / 默认值)
├── config.local.php 本地数据库配置(安装向导生成)
├── inc/
│ ├── functions.php 公共函数库(积分 / 置顶 / 广告 / 客服 / 安全)
│ ├── header.php 公共头部(导航 / Logo / favicon)
│ └── footer.php 公共尾部(搜索联想 / 轮播 / 客服悬浮)
├── api/ 接口层(auth / action / user / publish / lucky / store / ai-chat / upload / search-suggest / logout)
├── install/ 建表 SQL + 示例数据
├── assets/ 样式 / 脚本 / 本地字体
├── uploads/ 上传目录(防执行 / 防列目录)
├── backup/ 一键备份 SQL
└── favicon.ico 站点图标
4. 数据库
- 库名/账号/密码:安装时自定义(演示环境为
127.0.0.30) - 表前缀:
xc_ - 共 26 张表(xc_ 前缀):
| 表 | 说明 |
|---|---|
| xc_config | 站点配置(键值对,后台所有设置存这里) |
| xc_user | 用户(角色 / 积分 / 高级版到期 / 签到) |
| xc_category | 分类(多级 / 精选 / 图标配色) |
| xc_doc | 资源文档(下载方式 / 置顶 / 状态) |
| xc_tag / xc_doc_tag | 标签 与 资源-标签关联 |
| xc_comment / xc_comment_like | 评论 与 点赞去重 |
| xc_favorite / xc_history / xc_download | 收藏 / 浏览历史 / 下载记录 |
| xc_point_log | 积分流水(收支 / 余额 / 类型) |
| xc_card | 激活码 / 积分卡密 |
| xc_ai_log | AI 问答记录 |
| xc_menu | 导航菜单 |
| xc_banner / xc_advert | 轮播 Banner / 广告位 |
| xc_notice | 站点公告 |
| xc_report | 举报 |
| xc_search_log | 搜索日志(热搜词 / 联想) |
| xc_activity / xc_prize / xc_lucky_log | 抽奖活动 / 奖品池 / 中奖记录 |
| xc_store / xc_order | 商城商品 / 兑换订单 |
| xc_admin_log | 后台操作日志 |
5. 前台功能
首页

- 轮播 Banner(后台可配,支持渐变背景 / 起止时间)
- 精选分类(后台「分类管理」勾选,最多 10 个)
- 最新资源 / 热门推荐 / 热门下载榜 / 标签云 / 最新评论
- 签到入口、AI 问答入口、积分余额展示
分类与筛选

- 多级分类,分类页可按「下载方式 / 发布时间」筛选
- 排序:综合 / 最新 / 下载 / 浏览 / 评论
资源详情

- 资源速览(大小 / 格式 / 更新时间 / 解压密码)
- 富文本正文(已做 XSS 白名单过滤)
- 下载:免费 / 积分 / 高级版三种权限自动判定,本地直链或网盘链接(含提取码)
- 评论互动(点赞 / 举报)、收藏 / 分享、相关推荐
全文检索

- 标题 / 正文 / 标签 多范围命中
- 关键词高亮、搜索联想(热搜词库)、热搜榜
积分商城

- 积分兑换:积分 / 高级版天数 / 积分卡密
- 库存控制、兑换订单记录、卡密即时发放
抽奖活动中心

- 多活动切换(签到解锁 / 节日 / 新用户 / 积分抽奖)
- 真实转盘动画、按概率出奖、中奖记录
在线客服(全站右下角悬浮)

- 微信二维码 + 微信号一键复制
- QQ 号复制 + 在线咨询(跳 QQ 临时会话)
- 后台可配置开关 / 标题 / 欢迎语 / 二维码 / 联系方式
6. 用户中心
| 面板 | 功能 |
|---|---|
| 个人信息 | 昵称简介、邮箱绑定 |
| 安全设置 | 修改密码(需旧密码)、设备管理 |
| 激活高级版 | 折叠面板输入激活码(月 / 半年 / 年 / 永久) |
| 我的收藏 | 管理收藏文档 |
| 我的发布 | 自己发布的资源与状态 |
| AI 问答历史 | 查看 / 清空提问记录 |
| 我的评论 | 自己发过的留言 / 回复,可删除,分页 |
| 最近浏览 | 按日期分组,可清空 |
| 下载历史 | 下载记录 |
| 积分详情 | 卡密充值、签到日历 |
| 积分使用记录 | 收支明细、按月筛选 |
| 消息通知 | 评论回复 / 系统通知 / 资源更新 |
7. 后台管理(20 模块)
| 模块 | 说明 |
|---|---|
| 📊 数据仪表盘 | 核心统计、热门搜索词、积分收支、最新动态、待办 |
| 🗂️ 分类管理 | 多级分类、⭐精选、排序、图标配色、显隐 |
| 📄 文档管理 | 筛选、置顶、回收站 |
| 🔍 内容审核 | 待审列表,通过自动发积分,可填驳回原因 |
| 🗑️ 回收站 | 恢复 / 彻底删除 |
| 🚩 举报处理 | 资源/评论举报,处理 / 忽略 |
| 💬 评论管理 | 删除违规评论 |
| 🖼️ 轮播 Banner | 增删改 / 启停 / 排序 / 背景 |
| 📢 广告管理 | 首页横幅 / 侧栏 / 列表三广告位,标题与链接 |
| 👥 用户管理 | 封禁 / 解封 / 调整积分 |
| 🔑 激活码 / 卡密 | 批量生成(类型 / 数量 / 前缀 / 时长 / 面额) |
| 🪙 积分管理 | 全部积分规则、下载分成比例、置顶定价、本地上传扣费 |
| 🛍️ 积分商城 | 商品管理(防刷校验)、兑换订单 |
| 🎰 营销工具 | 抽奖活动发布、奖品池配置、中奖记录 |
| 🤖 AI 设置 | DeepSeek Key / 模型 / Token 上限 / 每日次数 / 预算 |
| 📧 邮件 SMTP | 发信配置 |
| 🧭 导航菜单 | 前台导航管理 |
| ⚙️ 基础设置 | 网站基础信息(Logo/favicon/ICP/版权)、TDK、在线客服、功能开关、URL 伪静态、数据库连接 |
| 💾 一键备份 | 整库 SQL 备份到 backup/ |
| 📋 操作日志 | 后台操作留痕 |
8. 积分与经济系统
默认积分规则(后台全部可改)
| 行为 | 积分 |
|---|---|
| 注册赠送 | +100 |
| 每日签到 | +5(连签 7 天 +20) |
| 邀请注册 | +50 |
| 发布资源审核通过 | +20 |
| 积分下载作者分成 | 默认 70%(后台可调) |
| 免费下载 | 普通用户每日 3 次 |
| 分类置顶 | 7 天 60 / 15 天 120 / 30 天 220 |
| 高级会员 30 天置顶 | 默认 2 折(折扣分母可配) |
| 本地上传 | 仅高级会员 · 1 积分/MB(最低 5 分)· ≤200MB |
| 签到抽奖解锁 | 连续签到 7 天,每日 1 次 |
获取积分途径
签到 / 注册 / 邀请 / 发布通过 / 卡密充值 / 抽奖 / 商城兑换 / 作者分成
高级版权益

- 全站资源免积分下载、无每日次数限制
- 本地上传(扣积分)
- 置顶 7/15 天免费,30 天折扣
- 全站免广告、AI 问答每日次数大幅提升
9. 在线客服与站点配置

在线客服
后台「基础设置 → 在线客服」:
- 总开关(前台右下角悬浮球)
- 客服标题、欢迎语
- 微信二维码图片(管理员上传,仅图片不扣积分)
- 微信号(前台一键复制)、QQ 号(复制 + 在线咨询)
- QQ 链接留空时按 QQ 号自动生成
wpa.qq.com临时会话
网站基础信息
后台「基础设置 → 网站基础信息」:站名、副标题、Logo 上传、favicon 上传、ICP 备案号、版权。
TDK
后台「基础设置 → TDK 设置」:标题自动 = 页面名 + 站名;关键词、描述手动配置。
10. 安全机制
| 项目 | 实现 |
|---|---|
| SQL 注入 | PDO 预处理 + 参数绑定,ID 一律 (int),排序/时间白名单 |
| XSS | 输出统一 e() 转义;富文本 sanitize_html() 白名单过滤(发布+输出双端);搜索联想前端转义;toast 用 textContent |
| CSRF | 全站 token 机制(表单自动注入 + fetch 拦截器自动附带),前台写接口与后台全部 POST 校验 |
| 密码 | password_hash() / password_verify() |
| 登录限流 | 同 IP 连续失败 5 次锁 15 分钟 |
| 上传安全 | 扩展名白名单 + finfo MIME 双重校验、随机重命名、日期分目录、uploads 目录 Nginx/Apache 禁脚本执行、防列目录 |
| 会话 | HttpOnly + SameSite=Lax cookie |
| 开放重定向 | 登录 back 参数白名单 |
| 并发安全 | 卡密/激活码/库存原子抢占(UPDATE ... WHERE status=0 / left>0) |
| 敏感操作 | 后台操作日志留痕 |
11. 常见问题 FAQ
Q1:安装向导提示"数据库连接失败"?
检查数据库地址 / 端口 / 账号 / 密码是否正确;确认 MySQL 已启动;数据库名可留空让向导自动创建(需账号有建库权限)。
Q2:AI 问答一直返回"站内检索模式"?
后台「AI 设置」填入 DeepSeek API Key 并保存;未配置时系统自动降级为站内检索,属于预期行为。
Q3:注册收不到验证邮件?
后台「邮件 SMTP」填入邮箱 SMTP 服务器 / 端口 / 账号 / 授权码(如 QQ 邮箱授权码);本地环境建议先用"无需邮箱验证"模式。
Q4:上传文件提示"不支持的文件类型"?
本地上传仅允许白名单扩展名(图片/文档/压缩包/音视频等),可执行文件一律拒绝,属安全设计。
Q5:如何重置管理员密码?
phpMyAdmin 打开 xc_user 表,找到 admin 行,将 password 字段改为 php -r "echo password_hash('新密码', PASSWORD_DEFAULT);" 的输出值;或重新走 install.php(会清空数据,慎用)。
Q6:后台开关勾选后保存无效?
开关类(checkbox)已统一处理未勾选补 0,请确认点的是「保存开关」按钮;改完配置后刷新页面生效。
Q7:演示数据怎么清空?
后台逐项删除,或 phpMyAdmin 清空对应表(xc_doc / xc_comment 等),保留 xc_config / xc_user(含管理员)。
12. 二次开发指南
常用函数(inc/functions.php)
| 函数 | 说明 |
|---|---|
e($str) |
HTML 转义(所有输出必须用它) |
setting($key, $default) |
读取配置(数据库优先,缺省取默认值) |
db() |
PDO 实例(预处理) |
user() / uid() / is_login() / is_admin() / is_vip() |
用户与权限 |
point_change() / point_spend() |
积分变动(支持嵌套事务) |
top_price($days, $vip) |
置顶价格计算 |
sanitize_html() |
富文本白名单过滤 |
safe_url() |
URL 协议白名单 |
csrf_check() / csrf_token() |
CSRF 校验 |
ad_box($slot) / notice_bar() |
广告位 / 公告条 |
新增页面
- 复制任意前台页面骨架(
require header.php+ 内容 +include footer.php) - 需要登录的页面:先
require config.php+require_login(),再输出 HTML - 数据操作走
db()->prepare()预处理,输出一律e()
新增接口
- 在
api/下新建文件,开头require_once __DIR__ . '/../config.php' - 写操作必须:
require_login()(如需)+csrf_check() - 返回用
json_out(['ok'=>bool, 'msg'=>'...'])
新增配置项
config.php的$GLOBALS['SITE_DEFAULTS'](或 POINT_DEFAULTS)加默认值- 后台对应表单加
name="cfg[your_key]"即可(save_config 自动落库)
13. 更新日志
V1.0(2026-08-07 首发)
- 全量功能:前台 13 页 / 用户中心 12+ 面板 / 后台 20 模块 / 26 张表
- 富文本编辑器、全文检索(联想)、AI 问答(DeepSeek)、积分商城、抽奖活动中心
- 高级版激活码 / 卡密体系、置顶积分购买、本地上传(VIP+积分)
- 全站广告、轮播、公告、在线客服(微信+QQ)
- 完整安全加固:CSRF / XSS 过滤 / 上传防护 / 登录限流 / 原子并发
- 安装向导支持自定义数据库(config.local.php 机制)
本文档由 ai小陈 编写,适用于「小陈资源 V1.0」安装版。