-
举报系统
- 用户可以对违规的漂流瓶或评论进行举报
- 支持选择默认举报理由或自定义举报理由
- 防止用户举报自己的内容
- 防止重复举报已处理的内容
- 同一内容的多次举报在后台合并显示
- 后台管理员可以审核举报,支持以下操作:
- 删除内容(软删除,可恢复)
- 屏蔽漂流瓶内容(内容不显示但可捡起)
- 屏蔽评论内容(内容不显示但评论保留)
- 拒绝举报
- 撤销之前的处理操作
- 审核完成后自动向举报人发送消息通知
- 审核完成后自动向被举报人发送警告消息(红色提醒)
- 举报成功奖励积分(可在后台配置)
-
软删除功能
- 删除操作改为软删除(设置is_deleted=1),内容可恢复
- 漂流瓶和评论都支持软删除
- 撤销处理时可以恢复被删除的内容
-
消息通知系统增强
- 新增"举报反馈"消息类型
- 系统消息支持(from_user_id为NULL)
- 被举报人收到红色警告消息,提醒内容被处理的原因
- 举报人收到蓝色信息消息,告知举报处理结果
- 新增
reports表(举报表) bottles表新增字段:is_hidden(TINYINT(1)): 是否屏蔽is_deleted(TINYINT(1)): 是否删除(软删除)
comments表新增字段:is_hidden(TINYINT(1)): 是否屏蔽is_deleted(TINYINT(1)): 是否删除(软删除)
messages表更新:from_user_id字段允许 NULL(表示系统消息)type字段新增 '举报反馈' 类型
system_settings表新增配置:POINTS_PER_REPORT_APPROVED: 举报成功奖励积分(默认5)
- 在
pick.html、profile_picked.html、profile_bottles.html添加举报按钮 - 举报模态框支持选择默认理由或自定义理由
- 消息中心支持显示系统消息和举报反馈消息
- 被举报人警告消息使用红色警告样式显示
- 新增"举报管理"页面(
admin/reports.php) - 支持查看待审核、已审核、已拒绝的举报
- 支持批量处理同一内容的多个举报
- 支持撤销之前的处理操作
- 系统设置页面新增举报成功积分配置
-
数据库索引优化
- 为所有主要表添加了性能优化索引
- 优化了用户表(users)的查询性能,添加了 created_at、is_vip、status、vip_expire_date 索引
- 优化了漂流瓶表(bottles)的查询性能,添加了 user_id、status、throw_time、bottle_type、quality_score 等索引
- 优化了评论表(comments)的查询性能,添加了 bottle_id、user_id、created_at 等索引和复合索引
- 优化了点赞表(likes)、捡瓶记录表(pick_records)、签到表(checkins)等表的查询性能
- 优化了消息中心表(messages)的查询性能,添加了用户、已读状态、创建时间的复合索引
- 优化了系统设置表(system_settings)的查询性能,添加了 setting_group 索引
- 所有索引优化已合并到主数据库文件
driftbottle.sql中
-
数据库查询优化
- 优化了后台控制面板的统计查询,从 29 次查询减少到 4 次
- 优化了用户信息查询,合并多个查询为单个查询
- 优化了漂流瓶列表查询,解决了 N+1 查询问题
- 实现了系统设置缓存机制,大幅提升配置读取性能
-
高德地图 API Key 配置优化
- 将高德地图 API Key 从代码配置改为后台数据库配置
- 可在后台管理系统 → 系统设置 → 基本设置中直接配置和修改
- API Key 已包含在数据库初始化脚本中,首次安装无需额外配置
- 支持在后台界面中显示/隐藏 API Key,保护敏感信息
-
网站备案和版权信息管理
- 新增后台配置功能:可在系统设置 → 基本设置中配置备案号、公安备案号、版权信息、站长邮箱
- 前台所有页面自动显示配置的备案信息和版权信息
- 支持ICP备案号和公安备案号的链接跳转
- 版权信息和站长邮箱信息可在后台灵活配置
- 所有信息通过API动态加载,无需修改前端代码
- 合并了
add_amap_api_key.sql到主数据库文件driftbottle.sql - 所有数据库索引优化已包含在主数据库文件中
- 新增备案号、公安备案号、版权信息、站长邮箱配置项到系统设置表
- 新安装用户可直接使用优化后的数据库结构
-
IP地址追踪功能
- 用户注册时自动记录注册IP地址
- 用户登录时自动更新上次登录IP地址
- 发布漂流瓶时自动记录IP地址(已有功能)
- 发表评论时自动记录IP地址
- 后台管理系统可查看用户注册IP、上次登录IP
- 后台管理系统可查看漂流瓶和评论的IP地址
- 用户详情页面显示注册IP、登录IP和评论内容
- 漂流瓶详情页面显示漂流瓶IP和评论IP
- 评论管理页面显示每条评论的IP地址
-
评论回复功能(二级评论)
- 支持对评论进行回复,实现二级评论结构
- 回复以缩进方式显示,左侧有边框标识
- 回复时显示"回复 @用户名"标识
- 在"我扔出的漂流瓶"和"我捡到的漂流瓶"页面都可以查看和回复评论
- 回复评论会通知被回复的用户,而不是漂流瓶所有者
- 回复评论也会给被回复的用户增加积分
-
评论功能增强
- "我扔出的漂流瓶"页面现在显示所有评论内容(包括回复)
- "我捡到的漂流瓶"页面现在显示所有评论内容(包括回复)
- 评论后可以选择两种模式:
- 仅评论:添加评论,但漂流瓶不丢回大海,依然显示在"我捡到的漂流瓶"中
- 评论并丢回大海:添加评论并将漂流瓶状态更新为"漂流中",其他人可以捡起
- 评论后漂流瓶依然显示在"我捡到的漂流瓶"中(无论选择哪种模式)
- 丢回大海的漂流瓶别人捡起后可以看到所有评论内容
-
消息中心功能增强
- 支持点击未读消息标记为已读
- 未读消息有蓝色边框和"未读"徽章标识
- 点击后自动更新消息状态和未读数量
- 优化消息显示样式(蓝色系配色)
- 未读消息徽章样式优化(长方体、渐变背景、脉冲动画)
- 消息卡片横排显示,字体调大
-
分页功能修复
- 修复了"我扔出的漂流瓶"页面分页功能失效的问题
- 修复了"我捡到的漂流瓶"页面分页功能失效的问题
- 修复了点击第二页后内容无变化的问题
- 改进了事件绑定机制,避免重复绑定
- 添加了页面范围检查,确保分页正确工作
-
UI/UX 修复
- 修复了个性签名更新成功弹窗位置问题(现在居中显示)
- 优化了弹窗样式(圆角、阴影、动画效果)
- 修复了未读消息按钮显示样式问题
- 优化了消息中心标题布局(数字显示在标题后面)
- 优化了
getUserPickedBottles函数,为每个漂流瓶获取评论列表(包括回复) - 优化了
getUserBottles函数,为每个漂流瓶获取评论列表(包括回复) - 改进了
commentAndThrowBottle函数,支持仅评论模式(不丢回大海) - 改进了分页渲染逻辑,使用事件委托避免重复绑定
- 添加了更详细的调试日志
- 移除了过滤已评论漂流瓶的逻辑,所有漂流瓶都显示
comments表新增字段:parent_id(INT(11), NULL): 父评论ID,NULL表示一级评论reply_to_user_id(INT(11), NULL): 回复的目标用户IDip_address(VARCHAR(50), NULL): 评论IP地址
users表新增字段:register_ip(VARCHAR(50), NULL): 用户注册IP地址last_login_ip(VARCHAR(50), NULL): 用户上次登录IP地址(已存在,现在会自动更新)
- 新增索引:
idx_parent_id、idx_reply_to_user_id、idx_ip_address(评论IP地址索引) - 新增外键约束:
parent_id引用comments(id)ON DELETE CASCADEreply_to_user_id引用users(id)ON DELETE SET NULL
comment_bottleAPI 新增参数:parent_id(可选): 父评论ID,用于回复评论reply_to_user_id(可选): 被回复的用户IDthrow_back(可选, 默认true): 是否丢回大海,false表示仅评论
- 删除了"显示全部漂流瓶"按钮(所有漂流瓶默认显示,不再需要过滤)
- 评论显示功能
- "我捡到的漂流瓶"页面现在会显示每个漂流瓶的所有评论
- 评论显示包括评论者、评论时间和评论内容
- 评论者用户名可点击查看个人资料
- 添加了 HTML 转义,防止 XSS 攻击
- 分页功能修复
- 修复了"我扔出的漂流瓶"和"我捡到的漂流瓶"页面分页功能失效的问题
- 修复了点击第二页后内容无变化的问题
- 改进了事件绑定机制,避免重复绑定
- 添加了页面范围检查,确保分页正确工作
- 优化了
getUserPickedBottles函数,为每个漂流瓶获取评论列表 - 改进了分页渲染逻辑,使用事件委托避免重复绑定
- 添加了更详细的调试日志
注意: 此版本的功能已整合到 v1.3.0 中
- 用户等级系统
- 通过发漂流瓶、捡漂流瓶、评论等操作自动获得经验值
- 根据经验值自动计算用户等级(等级公式:level = floor(sqrt(experience / 100)) + 1)
- 在个人主页和用户公开主页显示等级徽章和经验条
- 后台管理员可以查看和设置用户经验值
- 后台系统设置中可以配置各项操作获得的经验值
- 经验值历史记录功能
users表新增字段:experience、level- 新增表:
experience_history(经验值历史记录表)
- 新增 API 端点:
get_experience_config、get_user_level_info
- 语音漂流瓶功能
- 支持录制和发布语音漂流瓶
- 支持播放语音内容
- 显示语音时长信息
- 前端页面(扔瓶、捡瓶、个人中心)全面支持语音播放
- 管理员后台支持语音播放和文件管理
- 删除漂流瓶时自动删除关联的语音文件
bottles表新增字段:bottle_type、audio_file、audio_duration
- 新增 API 端点:
upload_audio(语音文件上传)
- favicon.ico
- 实在是强迫症了,随便整了一个上传了
更新将所有数据配置相关功能改为MySQL数据库存储,主要包括:
- 积分规则配置
- 普通用户每日扔瓶限制
- 普通用户每日捡瓶限制
- VIP用户每日扔瓶限制
- VIP用户每日捡瓶限制
- 新增admin/settings.php系统设置页面
- 支持修改网站名称等基本设置
系统设置页面分为四个主要模块:
- 基本设置:网站名称、网站URL、管理员邮箱等
- 积分规则:签到积分、VIP额外积分、点赞获得积分等规则
- 用户限制:普通用户和VIP用户的每日扔瓶和捡瓶限制
- 内容设置:漂流瓶内容长度限制、评论长度限制等
更新将 VIP 会员开通所需积分配置改为从 MySQL 数据库存储,实现在后台可配置功能,主要包括:
- VIP会员1个月开通所需积分
- VIP会员3个月开通所需积分
- VIP会员6个月开通所需积分
- VIP会员12个月开通所需积分
管理员可以通过后台"系统设置"页面的"VIP设置"选项卡修改以下配置:
- VIP会员1个月开通积分:默认为 100 积分
- VIP会员3个月开通积分:默认为 250 积分
- VIP会员6个月开通积分:默认为 450 积分
- VIP会员12个月开通积分:默认为 800 积分
所有配置修改后立即生效,无需重启服务器。系统会自动从数据库读取最新的配置值。
- 取消使用伪静态功能
- 修改nginx.htaccess配置文件,注释掉伪静态转发规则
- 清空.htaccess文件,彻底取消Apache伪静态规则
- 修改前端JavaScript API调用,从使用伪静态路径格式改为传统的GET参数格式
- 增强前端代码错误处理和调试功能,提高系统稳定性
- 改进表单提交验证,增加防护检查机制
- 修复注册页面中表单ID不匹配问题,确保输入验证正确工作
- 修复API调用路径,将所有
api.php/endpoint格式的调用改为api.php?action=endpoint格式 - 增加错误日志和调试信息,提供更详细的问题排查支持
- 增强JavaScript代码的健壮性,添加必要的错误捕获和空值检查
-
增强安全功能
- 增强了sanitizeInput函数,使用更严格的参数
- 添加了专门的HTML过滤函数sanitizeHtml,允许基本HTML标签但过滤危险内容
- 添加了URL过滤函数sanitizeUrl
- 添加了SQL过滤函数sanitizeSql
- 创建了完整的安全中间件类Security,提供了
- 内容安全策略(CSP)设置
- 安全相关的HTTP响应头
- 会话固定攻击防护
- CSRF令牌生成和验证
- 输入验证和过滤
- 恶意输入检测
- 在API处理流程中增加了恶意输入检测
- 为常用API端点增加了详细的验证规则
- 前端添加了CSRF令牌处理工具以及获取CSRF令牌的API端点
- 增强了 Security 类:
- 扩展了恶意模式检测,添加更多XSS和SQL注入模式
- 添加了更严格的HTML净化函数 purifyHtml
- 添加了JSON数据过滤和安全输出功能
- 改进了基本过滤函数:
- 为所有过滤函数添加了类型检查
- 增强了URL过滤,阻止更多危险协议
- 集成了高级HTML过滤
- 添加了专门的验证器类 Validator:
- 提供了对用户名、密码、URL、电子邮件等的高级验证
- 实现了文本和HTML内容的验证和长度检查
- 添加了密码强度评估
- 优化了API处理:
- 使用安全输出JSON函数
- 记录潜在的攻击尝试
- 改进了CORS和预检请求处理
-
新增账号封禁功能
- 管理员可以控制账号是否允许登陆
- 已运行用户使用update_user_status.sql新增数据表
-
VIP会员系统
- 实现VIP会员购买和续费功能
- VIP会员享有更高的漂流瓶发送配额
- VIP会员特权标识和界面优化
- VIP到期自动检测和状态更新
-
用户签到系统
- 每日签到获取积分奖励
- 连续签到奖励增加
- 签到统计(月度签到次数、连续签到天数)
-
个性化设置
- 用户可以设置个性签名,展示在个人资料页
- 个性签名字数限制为50字
-
积分系统
- 用户可通过多种方式获取积分(签到、互动等)
- 积分历史记录
- 积分用途扩展
-
漂流瓶功能增强
- 评论功能优化,支持实时评论
- 对漂流瓶添加点赞功能
- 匿名发送选项
- 漂流瓶发送频率限制
-
UI/UX改进
- 响应式界面优化,提升移动端体验
- 漂流瓶性别区分(蓝色表示男性,粉色表示女性)
- 交互反馈优化
- 导航栏状态根据登录状态动态更新
-
安全性增强
- IP地址记录与保护
- 非VIP用户IP地址部分隐藏
- 后端验证增强
- 使用MutationObserver监听DOM变化,优化漂流瓶交互体验
- 优化API响应结构,提高前端数据处理效率
- 漂流瓶存储结构优化
- 修复用户签名更新后不显示的问题
- 修复VIP状态检测逻辑
- 修复漂流瓶评论按钮事件绑定问题
- 漂流瓶内容分类系统
- 用户间私信功能
- 漂流瓶收藏功能
- 更多的用户个性化设置
- 用户等级系统