# HuBBS免费开源论坛程序 **Repository Path**: youruihu/hubbs ## Basic Information - **Project Name**: HuBBS免费开源论坛程序 - **Description**: 一款免费开源论坛程序。 - **Primary Language**: PHP - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: https://bbs.huyourui.com - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-03-27 - **Last Updated**: 2026-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HuBBS v2.0.3 发布说明 ## 产品简介 HuBBS 是一款轻量级、高性能的开源论坛程序,采用 PHP + MySQL 架构,支持亿级数据量。设计简洁优雅,功能完善,适合各类社区建设。 ## 主要特性 ### 核心功能 - ✅ 用户系统(注册、登录、个人中心) - ✅ 帖子发布、编辑、删除 - ✅ 回复功能(支持楼中楼回复) - ✅ 板块分类管理(支持二级分类) - ✅ 置顶、精华、锁定帖子 - ✅ 点赞、收藏功能 - ✅ 消息通知系统 - ✅ 友情链接管理 ### 编辑器功能 - ✅ 所见即所得(WYSIWYG)富文本编辑器 - ✅ 图片上传(支持多图、拖拽上传) - ✅ 附件上传 - ✅ 文字排版(字号、颜色、背景色) - ✅ 对齐方式(左对齐、居中、右对齐、两端对齐) - ✅ 引用、代码、链接、分隔线 - ✅ 撤销/重做 - ✅ 快捷键支持(Ctrl+Enter 提交) ### 管理功能 - ✅ 后台管理面板 - ✅ 用户管理(封禁、注销、恢复) - ✅ 帖子管理(审核、删除、移动) - ✅ 板块管理 - ✅ 友情链接管理 - ✅ 系统设置(35+ 配置项) - ✅ 上传设置(图片/附件大小、类型限制) ### 安全特性 - ✅ CSRF 防护 - ✅ SQL 注入防护 - ✅ XSS 过滤 - ✅ 密码加密存储 - ✅ 用户软删除(保留内容,可恢复) - ✅ 邮箱验证(可选开启) ### 其他特性 - ✅ 响应式设计(支持移动端) - ✅ 字符头像(自动生成) - ✅ 记住登录 - ✅ 未读消息提醒 - ✅ SEO 优化 ## 系统要求 - PHP 7.4 或更高版本 - MySQL 5.7+ 或 MariaDB 10.2+ - PDO 扩展 - PDO_MySQL 扩展 - GD 扩展(图片处理) ## 安装步骤 ### 1. 下载并解压 将程序文件解压到网站根目录或子目录。 ### 2. 创建数据库 在 MySQL 中创建一个新的数据库(如 `hubbs`)。 ### 3. 运行安装程序 访问 `http://your-domain.com/install/`,按提示完成安装: - 填写数据库连接信息 - 设置管理员账号 - 完成安装 ### 4. 删除安装目录(可选) 安装完成后,建议删除 `install/` 目录或保留 `install.lock` 文件。 ## 默认配置 ### 默认板块 - 默认板块(强制选择分类已开启) ### 默认友情链接 - HuBBS官网:https://bbs.huyourui.com ### 默认设置 - 开放注册:是 - 邮箱验证:否(可在后台开启) - 强制选择板块:是 - 每页帖子数:20 - 每页回复数:20 ## 目录结构 ``` hubbs/ ├── core/ # 核心类库 │ ├── Auth.php # 认证类 │ ├── DB.php # 数据库类 │ ├── Settings.php # 设置类 │ ├── Migrate.php # 迁移类 │ ├── Upload.php # 上传类 │ ├── Model.php # ORM模型基类 │ ├── Router.php # 路由系统 │ ├── View.php # 模板引擎 │ └── functions.php # 公共函数 ├── models/ # 数据模型 │ ├── User.php # 用户模型 │ ├── Post.php # 帖子模型 │ ├── Forum.php # 板块模型 │ └── ... ├── services/ # 业务服务层 │ ├── PostService.php # 帖子服务 │ ├── NotificationService.php # 通知服务 │ └── ... ├── api/ # RESTful API │ ├── ApiResponse.php │ ├── ApiAuth.php │ ├── PostApi.php │ ├── UserApi.php │ └── ... ├── modules/ # 功能模块 │ ├── admin.php # 后台管理 │ ├── post.php # 帖子模块 │ ├── user.php # 用户模块 │ └── ... ├── templates/ # 模板文件 │ └── default/ # 默认主题 ├── static/ # 静态资源 │ ├── css/ │ ├── js/ │ └── img/ ├── uploads/ # 上传目录(需可写) ├── data/ # 数据目录(需可写) ├── tests/ # 单元测试 │ ├── TestCase.php # 测试基类 │ ├── TestRunner.php # 测试运行器 │ └── UtilsTest.php # 工具函数测试 ├── install/ # 安装程序 └── index.php # 入口文件 ``` ## 升级说明 ### 从旧版本升级 1. 备份数据库和配置文件 2. 上传新版本文件(保留 `data/config.php`) 3. 访问网站,迁移系统会自动执行数据库更新 4. 清除缓存 ## 常见问题 ### Q: 安装后无法显示后台入口? A: 请检查管理员用户是否正确创建,确保 `is_admin = 1`。 ### Q: 如何开启邮箱验证? A: 在后台"网站设置"中配置 SMTP 信息,然后开启"注册需要验证邮箱"。 ### Q: 如何修改上传文件大小限制? A: 在后台"上传设置"中修改,同时需要调整 PHP 的 `upload_max_filesize` 和 `post_max_size`。 ### Q: 支持子目录安装吗? A: 支持,但建议使用根目录安装以获得最佳体验。 ## 安全建议 1. 安装完成后删除 `install/` 目录 2. 定期修改管理员密码 3. 开启 HTTPS 4. 定期备份数据库 5. 保持程序更新 ## 开源协议 本项目采用 **GNU General Public License v3.0 (GPLv3)** 协议开源。 ### 协议要点 - **自由使用**:您可以自由运行、复制、分发本程序 - **开放源码**:修改后的版本必须开源,并使用相同协议 - **专利授权**:贡献者授予用户专利使用权 - **禁止闭源**:基于本程序的衍生作品必须保持开源 ### 用户权利与义务 #### 您有权 - 自由使用本程序于任何目的 - 学习、研究程序的工作原理 - 修改程序以满足您的需求 - 重新分发副本帮助他人 #### 您必须 - 基于本程序的修改版本必须使用 GPLv3 协议开源 - 分发时提供完整的源代码 - 保留版权声明和免责声明 - 标注您所做的修改 ### 完整协议文本 完整的 GPLv3 协议文本请参见:[https://www.gnu.org/licenses/gpl-3.0.html](https://www.gnu.org/licenses/gpl-3.0.html) ### 商业使用 GPLv3 允许商业使用,但请确保遵守上述开源义务。如果您需要在闭源项目中使用,请联系我们获取商业授权。 ## 技术支持 - 官方网站:https://bbs.huyourui.com - Gitee:https://gitee.com/yourname/hubbs - GitHub:https://github.com/yourname/hubbs - 问题反馈:请在 Gitee Issues 提交 ## 更新日志 ### v2.0.2 (2026-06-18) - **Bug 修复:AJAX评论表情未渲染及回复按钮无反应** - 修复AJAX动态插入的评论内容中 `[表情名]` 标记未渲染为emoji的问题 - 新增前端 `renderWechatEmojis()` 函数,与后端渲染逻辑保持一致 - 修复新发表的主回复点击"回复"按钮无反应的问题 - `createReplyHtml()` 函数中补充楼中楼回复表单容器,确保回复功能可用 - 为新插入的楼中楼表单自动绑定AJAX提交事件 ### v2.0.1 (2026-06-18) - **文档修复**: 修正 README.md 中所有更新日志的日期为正确日期 ### v2.0.0 (2026-06-18) - **新增:微信表情功能** - 帖子评论和楼中楼评论支持插入微信表情 - 提供5个分类的表情面板:常用、心情、动作、物品、其他 - 共收录100+个微信默认表情,使用emoji字符渲染 - 表情文本标记(如 `[微笑]`)存储在数据库中,兼容性好 - 表情面板支持分类切换、点击插入、点击外部关闭 - 完美适配PC端和移动端 ### v1.9.5 (2026-06-18) - **Bug 修复:修复AJAX评论提交报错** - 修复调用不存在的方法 `$db->lastInsertId()` 导致的 fatal error - 改用 `$db->insert()` 返回的ID,确保AJAX响应正常返回JSON ### v1.9.4 (2026-06-18) - **Bug 修复:评论不立即显示问题** - 修复发表评论后需要刷新页面才能显示的问题 - `redirect()` 函数添加缓存控制头部,防止浏览器缓存重定向后的页面 - 主回复和楼中楼回复添加 AJAX 提交支持,新回复立即动态显示在页面上 - 新回复添加高亮动画效果,提升用户体验 ### v1.9.3 (2026-06-18) - **版本更新**: 版本号更新到 v1.9.3 ### v1.9.2 (2026-05-29) - **新增:帖子列表摘要功能** - 后台可设置是否在帖子列表显示内容摘要 - 支持自定义摘要字符数(默认100字符) - **优化:消息提示自动消失** - 消息提示3秒后自动淡出消失 - **优化:帖子详情页用户头像链接** - 点击帖子作者、回复者头像可进入个人中心 ### v1.9.1 (2026-05-29) - **优化:帖子回复数统计** - 帖子列表显示的回复数现在包含楼中楼评论 - 新增 `updatePostRepliesCount()` 方法统一计算总回复数 ### v1.9.0 (2026-05-29) - **Bug 修复:搜索功能优化** - 修复单独搜索标题或内容时的 FULLTEXT 索引错误 - 标题/内容单独搜索改用 LIKE 查询,全部搜索使用全文索引 - **优化:帖子链接新标签页打开** - 帖子列表、搜索结果、用户中心、通知列表的帖子链接改为新标签页打开 - **Bug 修复:搜索结果头像显示** - 修复搜索结果中用户头像无法显示的问题 ### v1.8.9 (2026-05-29) - **Bug 修复:编辑器样式加载** - 修复发帖页面编辑器 CSS 未加载的问题 - 编辑器工具栏恢复正常水平排列 - **Bug 修复:编辑器 JS 加载位置** - 将 editor.js 从 head 移至 body 底部加载 - 确保 DOM 和 CSS 加载完成后再初始化编辑器 ### v1.8.8 (2026-04-19) - **Bug 修复:搜索结果头像显示** - 修复 get_avatar_url 函数参数顺序错误 - 正确传递 avatar、user_id、username 参数 ### v1.8.7 (2026-04-19) - **Bug 修复:备选搜索参数绑定** - 修复 LIKE 查询中的命名参数错误 - 统一使用 ? 占位符 - 根据搜索类型动态调整参数数量 ### v1.8.6 (2026-04-19) - **Bug 修复:搜索模块参数绑定** - 修复 SQL 参数数量不匹配错误 - 使用 ? 占位符替代命名参数 - 确保 MATCH AGAINST 参数正确绑定 ### v1.8.5 (2026-04-19) - **Bug 修复:搜索模块删除判断** - 发现 posts 表没有软删除字段 - 移除搜索中的删除判断条件 - 帖子删除为物理删除,无需过滤 ### v1.8.4 (2026-04-19) - **Bug 修复:搜索模块字段名错误** - 修复 `is_deleted` 字段不存在的问题 - 改用 `deleted_at IS NULL` 判断帖子是否删除 ### v1.8.3 (2026-04-19) - **Bug 修复:搜索模块路由** - 添加 `handle()` 方法以兼容路由系统 - 修复 Fatal error: Call to undefined method SearchModule::handle() ### v1.8.2 (2026-04-19) - **新增功能:搜索功能** - 添加顶部导航搜索框,支持实时搜索 - 支持搜索帖子标题和内容 - 支持筛选搜索范围(全部/标题/内容) - 搜索结果高亮显示关键词 - 使用 MySQL 全文索引,搜索效率高 - 备选 LIKE 模糊查询,确保兼容性 - 添加搜索日志记录功能 - 搜索结果支持分页展示 - 响应式设计,适配移动端 ### v1.8.1 (2026-04-19) - **Bug 修复:base_url() 函数错误处理** - 修复 `function_exists('Settings::get')` 判断错误 - 改用 `class_exists()` 和 `method_exists()` 正确检查 - 添加 `@` 错误抑制和 `Throwable` 捕获 - 确保 Settings 类出错时不影响首页链接 ### v1.8.0 (2026-04-19) - **新增功能:自定义网站URL** - 后台设置新增"网站URL"选项 - 支持手动设置网站完整URL地址 - 未设置时自动检测程序所在目录 - 首页链接、Logo链接优先使用设置的URL - 解决各种服务器环境下的路径问题 ### v1.7.9 (2026-04-19) - **Bug 修复:最终修复 base_url() 函数** - 使用 SCRIPT_FILENAME 替代 SCRIPT_NAME/PHP_SELF - SCRIPT_FILENAME 始终指向实际入口文件,不受 URL 重写影响 - 确保在各种服务器配置下都能正确计算基础路径 ### v1.7.8 (2026-04-19) - **Bug 修复:进一步优化 base_url() 函数** - 优先使用 SCRIPT_NAME/PHP_SELF 计算路径 - 添加备选方案使用 DOCUMENT_ROOT - 创建 debug_url.php 调试页面帮助诊断问题 ### v1.7.7 (2026-04-19) - **Bug 修复:base_url() 路径计算** - 修复服务器环境下 Logo 和首页链接 URL 错误的问题 - 改用 HUBBS_ROOT 和 DOCUMENT_ROOT 计算基础路径 - 避免依赖 $_SERVER['SCRIPT_NAME'] 导致的兼容性问题 - 支持各种服务器配置(Nginx、Apache 重写等) ### v1.7.6 (2026-04-19) - **UI 优化:后台导航优化** - 将顶部导航"更新"改为"关于",避免与页面标题"系统更新"重复 - 保持红点提示功能,有新版本时仍会显示 ### v1.7.5 (2026-04-19) - **UI 优化:友情链接表单美化** - 重新设计表单卡片布局,添加渐变背景和阴影效果 - 添加表单头部图标和标题区域 - 优化输入框样式,添加悬停和聚焦效果 - 链接地址输入框添加 https:// 前缀提示 - 描述和排序字段采用双列布局 - 按钮样式优化,添加渐变和悬停动画 - 添加响应式设计,适配移动端 - 修复按钮错位问题 ### v1.7.4 (2026-04-19) - **Bug 修复:路径兼容性** - 修复顶部导航 Logo 链接硬编码为根目录的问题 - 修复顶部导航首页链接硬编码为根目录的问题 - 修复后台管理模板 CSS 链接使用相对路径的问题 - 修复后台管理所有导航链接使用相对路径的问题 - 所有链接统一使用 `base_url()` 函数,支持子目录部署 ### v1.7.3 (2026-04-19) - **架构优化:Service 层分离** - 新增 PostService 服务层,分离业务逻辑与数据访问 - 新增 NotificationService 服务层,统一通知管理 - 提升代码可维护性和可测试性 - **模板引擎增强** - 重构 View 类,支持模板继承、组件化 - 新增模板缓存机制 - 添加条件渲染和循环渲染辅助方法 - 提供 view() 和 display() 全局辅助函数 - **单元测试框架完善** - 新增 TestCase 基类,提供丰富的断言方法 - 新增 TestRunner 测试运行器,支持彩色 CLI 输出 - 新增 UtilsTest 测试用例,覆盖核心工具函数 - 支持 HTML 测试报告生成 - **代码质量提升** - 完善代码注释,提升可读性 - 优化代码结构,符合 PSR 规范 - 增强跨平台兼容性(Linux/Windows) ### v1.7.2 (2025-04-03) - **后台管理优化** - 修复友情链接管理页面头部导航样式问题 - 优化友情链接编辑:保存成功后显示提示并返回列表 ### v1.7.1 (2025-04-03) - **更新系统优化** - 修复 Gitee API 403 错误:使用浏览器 User-Agent 和完整请求头 - 添加备用 HTTP 请求方案(cURL + file_get_contents) - 优化后台更新页面:无法检测版本时也显示手动上传功能 - 添加详细错误信息显示 - **更新排除列表完善** - 添加更多服务器环境文件排除(.htaccess、.well-known 等) - 添加 IDE 配置、测试文件等排除项 ### v1.7.0 (2025-04-03) - **安装程序优化** - 增强环境检测:PHP版本、扩展、目录权限全面检查 - 修复路径兼容性:支持根目录和子目录部署 - 添加详细错误提示和权限检查 - **更新程序优化** - 完善排除列表:避免覆盖用户数据和配置文件 - 支持更多服务器环境文件排除 - **代码优化** - 清理仓库:移除非必要文件 - 完善.gitignore配置 - 修复头像上传相关问题 ### v1.6.0 (2025-04-02) - **新增功能:ORM 系统** - 新增 Model 基类,支持 Active Record 风格操作 - 新增 User、Post、Forum 等数据模型 - 支持查询构建器、关联关系、软删除 - **新增功能:RESTful API** - 新增完整的 API 接口(帖子、用户、板块、通知) - 支持 API 认证和权限控制 - 统一的 API 响应格式 - **新增功能:路由系统** - 新增 Router 类,支持 RESTful 风格路由 - 支持路由参数绑定和中间件 - 兼容传统 URL 参数路由 - **新增功能:单元测试框架** - 新增 TestCase 测试基类 - 新增 TestRunner 测试运行器 - 新增系统测试页面(test.php) - **优化**:顶部导航链接统一使用 base_url() - **优化**:静态资源添加版本号防止缓存 - **修复**:路由系统支持子目录部署 ### v1.5.1 (2025-04-02) - 修复:更新检查错误处理和错误信息显示 - 修复:后台更新页面模板引用错误 ### v1.5.0 (2025-04-01) - 新增功能:自动更新系统(基于 Gitee Release) - 新增功能:后台一键更新,自动备份和回滚 - 新增功能:版本检测和更新提醒 - 优化:账号设置页面默认头像显示 ### v1.3.0 (2025-03-31) - 新增功能:板块指定用户发帖权限 - 新增功能:发帖页面隐藏无权限板块 - 修复:编辑帖子页面板块权限过滤 - 修复:is_banned 未定义错误 ### v1.2.0 (2025-03-31) - 新增功能:帖子和评论编辑功能 - 新增功能:显示编辑次数和最后编辑时间 - 新增功能:删除帖子时自动删除关联的图片和附件 - 隐私保护:个人中心邮箱仅自己可见 - 代码优化:版本号统一管理 ### v1.1.0 (2025-03-31) - 安全增强:修复 SQL 注入风险 - 安全增强:数据库密码加密存储 - 稳定性增强:添加数据库事务控制 - 代码优化:完善错误处理机制 ### v1.0.0 (2025-03-31) - 初始版本发布 - 完整的论坛功能 - 富文本编辑器 - 后台管理系统 - 响应式设计 --- **感谢使用 HuBBS!**