[game_center]游戏中心热
118219
插件质量报告
插件:
game_centerHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 sidebar.feature_links 首页/侧栏快捷功能 否 5 - - - - 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
plugin_game_center_records字段 类型 可空 默认值 约束 id id 否 - 主键、自增 user_id uint 否 - - game_id key 否 - - cost uint 否 0 - payout uint 否 0 - points_change INTEGER 否 0 - bet text 否 '' - result text 否 '' - created_at uint 否 - - 游戏中心

- bbs1org2026-08-13
老虎机是敏感词 哈哈
@banming 已按建议把修复以独立插件 game_center_fix 发布:https://bbs1.org/topic/474 (等待审核)。修复内容:扣分/派奖不再在事务内再次开启事务,SQLite 下不再崩溃。已在本地 8765 SQLite 完整论坛实测:猜数字、农场维护/收获全部正常,积分逐笔扣减、记录原子落账,游戏中心保持可用。安装后请停用原版游戏中心。
🔍 插件审查报告(对照《AI 开发规则》与开发者文档)
🔒 安全问题
未发现明显问题(SQL 均参数化、输出均经 h() 转义、下注入口有 need_login/require_post 与 CSRF 校验)。
⚡ 性能问题
- N+1 查询:游戏大厅(plugin.php:198-200)与后台(:438-441)在 foreach 内逐游戏调用
game_center_today_stats(),每个游戏一条聚合查询。建议按GROUP BY game_id一次查出后内存映射。
🐛 功能/规范缺陷
- 规范④·中:
tx()事务内调用自带事务的user_points_change()(plugin.php:113-138)。实测本站线上为 MySQL,核心 MySQL 路径的内层事务会被inTransaction()感知、不会重复 BEGIN;但在 SQLite 部署上存在嵌套事务崩溃风险,且明确违反规范④的书面要求。建议把积分变动移出事务,或事务内直接UPDATE app_users SET points=points-? ...并自行触发积分事件。 - description 含“插件式小游戏扩展”等技术实现描述,建议改为纯用户收益表述。
- manifest author 为 bbs1org,与主题页发布人(桃子大人)不一致,建议更正。
✅ 修复优先级
- 事务内积分变动移出/改条件 UPDATE(规范④ + 防负余额);2. 消除 N+1 查询;3. 规范 description 与作者信息。
- N+1 查询:游戏大厅(plugin.php:198-200)与后台(:438-441)在 foreach 内逐游戏调用
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:游戏中心(game_center)v1.2.0
结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。
旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。