XIUNOBBS板块页获取不到页码导致数据库1064错误解决办法

V xinyu  (UID: 1) 2024-12-03 [复制链接]
帖子链接已复制到剪贴板

284 0

XIUNOBBS板块页获取不到页码导致数据库1064错误解决办法

我们正常使用TAG筛选时URL应该是/forum-1-1.htm?tagids=1这样的,当有人恶意使用/forum-1-0.htm?tagids=1访问的时候,由于找不到页码导致SQL查询起始数字变成-20,从而导致数据库报1064错误,这个错误可以从/log/db_error.php查看

SQL:SELECT tid FROM bbs_tag_thread WHERE tagid="2" ORDER BY tid DESC LIMIT -20, 20
errno: 1064,
errstr: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "-20, 20" at line 1
Markup

修复解决办法很简单,当$page为空的时候,赋予$page一个默认值,

加一个钩子 forum_top_list_before.php即可解决。

<?php exit;
empty($page) AND $page = 1;
?>
Markup

或者直接打开/route/forum.php

$page = param(2, 1);下面添加如下代码即可。

empty($page) AND $page = 1;
Markup

PS:建议使用钩子,尽量不要修改系统文件。

 

签名: xiuno论坛 欢迎你的加入!

────  已有0人觉得很赞  ────

已有回复 (0)
    暂无回复,快来抢沙发吧

    暂无回复,快来抢沙发吧

    • Xiuno论坛
      2
发新帖