2025-05-26 15:23:18 +08:00
|
|
|
|
# 内容投稿系统
|
|
|
|
|
|
|
|
|
|
一个轻量级、易部署的内容投稿管理系统,支持网址和APP/软件投稿,具有完善的后台审核功能。
|
|
|
|
|
|
|
|
|
|
## ✨ 功能特性
|
|
|
|
|
|
|
|
|
|
### 前端功能
|
|
|
|
|
- 🌐 **网址投稿**:自动获取网站TDK信息(标题、描述、关键词)
|
|
|
|
|
- 📱 **APP/软件投稿**:支持多平台应用投稿
|
|
|
|
|
- 🎯 **多平台收录**:支持自媒体维基、zTab、SOSO平台选择
|
|
|
|
|
- 🔒 **IP限制**:每IP每日最多提交3次
|
|
|
|
|
- 🚫 **重复检测**:智能检测重复内容
|
|
|
|
|
- 📱 **响应式设计**:完美适配移动端和桌面端
|
|
|
|
|
|
|
|
|
|
### 后端功能
|
|
|
|
|
- 👨💼 **管理后台**:完善的内容审核管理
|
|
|
|
|
- 🔐 **安全登录**:验证码保护,防暴力破解
|
|
|
|
|
- 📊 **数据统计**:实时查看投稿统计数据
|
|
|
|
|
- ✅ **状态管理**:待处理、已通过、已拒绝状态管理
|
|
|
|
|
- 👤 **账户管理**:支持修改管理员用户名和密码
|
|
|
|
|
- 🗂️ **分类管理**:网址和APP投稿分开管理
|
|
|
|
|
|
|
|
|
|
### 技术特性
|
|
|
|
|
- 🗄️ **双数据库支持**:MySQL和SQLite可选
|
|
|
|
|
- 🚀 **轻量化设计**:纯PHP开发,无复杂依赖
|
|
|
|
|
- 🎨 **现代化UI**:参考大厂设计风格
|
|
|
|
|
- 📦 **易于部署**:支持宝塔面板一键部署
|
|
|
|
|
- 🔧 **安装向导**:图形化安装配置
|
|
|
|
|
|
|
|
|
|
## 🛠️ 环境要求
|
|
|
|
|
|
|
|
|
|
- PHP >= 7.4
|
|
|
|
|
- PDO扩展
|
2025-05-26 18:22:24 +08:00
|
|
|
|
- PDO MySQL扩展(使用MySQL 5.7+或MariaDB时)
|
|
|
|
|
- PDO SQLite扩展(使用SQLite时)
|
2025-05-26 15:23:18 +08:00
|
|
|
|
- GD扩展(验证码功能)
|
|
|
|
|
- cURL扩展(网站信息抓取)
|
|
|
|
|
|
|
|
|
|
## 📦 安装部署
|
|
|
|
|
|
|
|
|
|
### 方式一:宝塔面板部署(推荐)
|
|
|
|
|
|
|
|
|
|
1. **下载源码**
|
|
|
|
|
```bash
|
|
|
|
|
# 在宝塔面板文件管理中,进入网站根目录
|
|
|
|
|
# 上传项目文件或使用Git克隆
|
|
|
|
|
git clone https://github.com/your-repo/submission-system.git
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **设置网站**
|
|
|
|
|
- 在宝塔面板中创建新网站
|
|
|
|
|
- 设置运行目录为项目根目录
|
|
|
|
|
- PHP版本选择7.4或以上
|
|
|
|
|
|
|
|
|
|
3. **配置数据库**
|
2025-05-26 18:22:24 +08:00
|
|
|
|
- 在宝塔面板中创建MySQL数据库(推荐MariaDB或MySQL 5.7+)
|
2025-05-26 15:23:18 +08:00
|
|
|
|
- 记录数据库名、用户名、密码
|
2025-05-26 18:22:24 +08:00
|
|
|
|
- 安装时勾选"兼容MySQL 5.7"选项(如使用MySQL 5.7)
|
2025-05-26 15:23:18 +08:00
|
|
|
|
|
|
|
|
|
4. **设置文件权限**
|
|
|
|
|
```bash
|
|
|
|
|
chmod 755 -R /www/wwwroot/your-domain/
|
|
|
|
|
chmod 777 /www/wwwroot/your-domain/config/
|
|
|
|
|
chmod 777 /www/wwwroot/your-domain/data/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
5. **运行安装向导**
|
|
|
|
|
- 访问 `http://your-domain/install.php`
|
|
|
|
|
- 按照向导完成安装配置
|
2025-05-26 18:22:24 +08:00
|
|
|
|
- 选择数据库类型(默认MariaDB/MySQL,可选SQLite)
|
2025-05-26 15:23:18 +08:00
|
|
|
|
|
|
|
|
|
6. **安全设置**
|
|
|
|
|
- 安装完成后删除或重命名 `install.php`
|
|
|
|
|
- 登录后台修改默认密码
|
|
|
|
|
|
|
|
|
|
### 方式二:手动部署
|
|
|
|
|
|
|
|
|
|
1. **上传文件**
|
|
|
|
|
- 将所有文件上传到Web服务器根目录
|
|
|
|
|
|
|
|
|
|
2. **配置Web服务器**
|
|
|
|
|
|
|
|
|
|
**Apache配置**(.htaccess):
|
|
|
|
|
```apache
|
|
|
|
|
RewriteEngine On
|
|
|
|
|
RewriteCond %{REQUEST_FILENAME} !-f
|
|
|
|
|
RewriteCond %{REQUEST_FILENAME} !-d
|
|
|
|
|
RewriteRule ^(.*)$ index.php [QSA,L]
|
|
|
|
|
|
|
|
|
|
# 安全设置
|
|
|
|
|
<Files "config/*">
|
|
|
|
|
Order Allow,Deny
|
|
|
|
|
Deny from all
|
|
|
|
|
</Files>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Nginx配置**:
|
|
|
|
|
```nginx
|
|
|
|
|
server {
|
|
|
|
|
listen 80;
|
|
|
|
|
server_name your-domain.com;
|
|
|
|
|
root /path/to/submission-system;
|
|
|
|
|
index index.php;
|
|
|
|
|
|
|
|
|
|
location / {
|
|
|
|
|
try_files $uri $uri/ /index.php?$query_string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
location ~ \.php$ {
|
|
|
|
|
fastcgi_pass 127.0.0.1:9000;
|
|
|
|
|
fastcgi_index index.php;
|
|
|
|
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
|
|
|
include fastcgi_params;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# 安全设置
|
|
|
|
|
location ~ ^/config/ {
|
|
|
|
|
deny all;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. **设置权限**
|
|
|
|
|
```bash
|
|
|
|
|
chmod 755 -R /path/to/submission-system/
|
|
|
|
|
chmod 777 /path/to/submission-system/config/
|
|
|
|
|
chmod 777 /path/to/submission-system/data/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. **运行安装**
|
|
|
|
|
- 访问安装向导完成配置
|
2025-05-26 18:22:24 +08:00
|
|
|
|
- 选择数据库类型(默认MariaDB/MySQL,可选SQLite)
|
2025-05-26 15:23:18 +08:00
|
|
|
|
|
|
|
|
|
## 🎯 使用说明
|
|
|
|
|
|
|
|
|
|
### 前台投稿
|
|
|
|
|
|
|
|
|
|
1. **网址投稿**
|
|
|
|
|
- 输入网址URL(支持http/https)
|
|
|
|
|
- 点击"获取信息"自动填充网站信息
|
|
|
|
|
- 选择收录平台
|
|
|
|
|
- 填写联系方式(可选)
|
|
|
|
|
- 提交投稿
|
|
|
|
|
|
|
|
|
|
2. **APP投稿**
|
|
|
|
|
- 切换到"APP/软件投稿"标签
|
|
|
|
|
- 填写应用名称、平台、版本等信息
|
|
|
|
|
- 提供图标地址、下载链接、官网地址
|
|
|
|
|
- 选择收录平台并提交
|
|
|
|
|
|
|
|
|
|
### 后台管理
|
|
|
|
|
|
|
|
|
|
1. **登录后台**
|
|
|
|
|
- 访问 `/admin/login.php`
|
|
|
|
|
- 默认账户:admin/admin
|
|
|
|
|
- 输入验证码登录
|
|
|
|
|
|
|
|
|
|
2. **内容审核**
|
|
|
|
|
- 查看待处理的投稿内容
|
|
|
|
|
- 切换查看网址投稿和APP投稿
|
|
|
|
|
- 批量或单个审核通过/拒绝
|
|
|
|
|
- 添加审核备注
|
|
|
|
|
|
|
|
|
|
3. **账户管理**
|
|
|
|
|
- 点击"账户设置"修改用户名和密码
|
|
|
|
|
- 建议首次登录后立即修改默认密码
|
|
|
|
|
|
|
|
|
|
## 🔧 配置说明
|
|
|
|
|
|
|
|
|
|
### 数据库配置
|
|
|
|
|
|
|
|
|
|
编辑 `config/database.php`:
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
// MySQL配置
|
|
|
|
|
private $host = 'localhost';
|
|
|
|
|
private $db_name = 'submission_system';
|
|
|
|
|
private $username = 'root';
|
|
|
|
|
private $password = '';
|
2025-05-26 18:22:24 +08:00
|
|
|
|
|
|
|
|
|
// 使用SQLite(设置为true)
|
|
|
|
|
private $use_sqlite = false;
|
2025-05-26 15:23:18 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 功能配置
|
|
|
|
|
|
|
|
|
|
- **IP限制**:在 `includes/utils.php` 中修改每日提交次数限制
|
|
|
|
|
- **验证码**:可在 `admin/captcha.php` 中自定义验证码样式
|
|
|
|
|
- **平台选项**:在前端页面中修改收录平台选项
|
|
|
|
|
|
|
|
|
|
## 📁 目录结构
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
submission-system/
|
|
|
|
|
├── admin/ # 后台管理
|
|
|
|
|
│ ├── index.php # 管理主页
|
|
|
|
|
│ ├── login.php # 登录页面
|
|
|
|
|
│ ├── logout.php # 退出登录
|
|
|
|
|
│ └── captcha.php # 验证码生成
|
|
|
|
|
├── api/ # API接口
|
|
|
|
|
│ └── fetch_website_info.php # 获取网站信息
|
|
|
|
|
├── config/ # 配置文件
|
|
|
|
|
│ └── database.php # 数据库配置
|
|
|
|
|
├── includes/ # 核心文件
|
|
|
|
|
│ └── utils.php # 工具类
|
|
|
|
|
├── data/ # 数据目录(SQLite)
|
|
|
|
|
├── index.php # 前台主页
|
|
|
|
|
├── install.php # 安装向导
|
|
|
|
|
├── README.md # 说明文档
|
|
|
|
|
└── LICENSE # 开源协议
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 🔒 安全建议
|
|
|
|
|
|
|
|
|
|
1. **修改默认密码**:首次登录后立即修改admin账户密码
|
|
|
|
|
2. **删除安装文件**:安装完成后删除 `install.php`
|
|
|
|
|
3. **设置文件权限**:确保配置文件不可通过Web访问
|
|
|
|
|
4. **定期备份**:定期备份数据库和配置文件
|
|
|
|
|
5. **更新维护**:及时更新PHP版本和扩展
|
|
|
|
|
|
|
|
|
|
## 🐛 常见问题
|
|
|
|
|
|
|
|
|
|
### Q: 无法获取网站信息?
|
|
|
|
|
A: 检查服务器是否支持cURL扩展,确保目标网站可访问。
|
|
|
|
|
|
|
|
|
|
### Q: 验证码不显示?
|
|
|
|
|
A: 检查GD扩展是否安装,确保PHP支持图像处理。
|
|
|
|
|
|
|
|
|
|
### Q: 数据库连接失败?
|
|
|
|
|
A: 检查数据库配置信息,确保数据库服务正常运行。
|
|
|
|
|
|
|
|
|
|
### Q: 文件上传权限错误?
|
|
|
|
|
A: 检查目录权限设置,确保Web服务器有写入权限。
|
|
|
|
|
|
|
|
|
|
### Q: 页面样式异常?
|
|
|
|
|
A: 检查CDN资源是否正常加载,可考虑本地化CSS/JS文件。
|
|
|
|
|
|
|
|
|
|
## 🤝 贡献指南
|
|
|
|
|
|
|
|
|
|
欢迎提交Issue和Pull Request来改进项目!
|
|
|
|
|
|
|
|
|
|
1. Fork 项目
|
|
|
|
|
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
|
|
|
|
|
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
|
|
|
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
|
|
|
5. 开启 Pull Request
|
|
|
|
|
|
|
|
|
|
## 📄 开源协议
|
|
|
|
|
|
|
|
|
|
本项目采用 MIT 协议开源,详见 [LICENSE](LICENSE) 文件。
|
|
|
|
|
|
|
|
|
|
## 🙏 致谢
|
|
|
|
|
|
|
|
|
|
- 感谢所有为开源社区做出贡献的开发者
|
|
|
|
|
- 特别感谢提供设计灵感的各大互联网公司
|
|
|
|
|
- 感谢使用本系统的每一位用户
|
|
|
|
|
|
|
|
|
|
## 📞 联系方式
|
|
|
|
|
|
|
|
|
|
如有问题或建议,欢迎通过以下方式联系:
|
|
|
|
|
|
|
|
|
|
- 提交 Issue
|
|
|
|
|
- 发送邮件
|
|
|
|
|
- 加入讨论群
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
**⭐ 如果这个项目对你有帮助,请给个Star支持一下!**
|