Typecho 提交评论 BUG
  Skill  1073℃  15条  532字数  预计阅读时间2分钟

Typecho 提交评论 BUG

  Skill  1073℃  15条  532字数  预计阅读时间2分钟

昨天偶然间在 QQ 中打开自己的博客,由于这两天在测试评论功能,所以在 QQ 打开博客后准备试着留言一下看看,诡异的事情发生了,点击提交按钮后出现 500 界面,当时我是懵逼的,什么鬼,明明很正常的留言为什么提交会出现 500。

冷静一番后,首先怀疑是不是我手机问题,开始把抽屉里压箱底的手机都翻出来装上 QQ 试试,经过测试,ios10.3.3 下的QQ、ios12.4 下的 QQ 以及 N 部安卓手机 QQ 打开博客进行评论都出现了无法提交的情况。

在非常郁闷的时候,突然想到,typecho 可以打开调试模式(非常推荐大家在网站有问题的时候打开调试模式看报错),立即在 config.inc.php 文件结尾处加上define('__TYPECHO_DEBUG__',true);,然后重新再 QQ 中提交评论,错误页面显示如下代码:

SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'agent' at row 1
Typecho_Db_Query_Exception: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'agent' at row 1 in /www/wwwroot/jdeal_cn/var/Typecho/Db/Adapter/Pdo.php:105
Stack trace:
#0 /www/wwwroot/jdeal_cn/var/Typecho/Db.php(353): Typecho_Db_Adapter_Pdo->query('INSERT INTO typ...', Object(PDO), 2, 'INSERT')
#1 /www/wwwroot/jdeal_cn/var/Widget/Abstract/Comments.php(189): Typecho_Db->query(Object(Typecho_Db_Query))
#2 /www/wwwroot/jdeal_cn/var/Widget/Feedback.php(140): Widget_Abstract_Comments->insert(Array)
#3 /www/wwwroot/jdeal_cn/var/Widget/Feedback.php(336): Widget_Feedback->comment()
#4 /www/wwwroot/jdeal_cn/var/Typecho/Router.php(138): Widget_Feedback->action()
#5 /www/wwwroot/jdeal_cn/index.php(26): Typecho_Router::dispatch()
#6 {main}

简单了看了下,说是数据库里第1行的“agent”列的数据太长,作为小白的我打开数据库查看了下,agent 是获取操作系统及浏览器的。

那大概意思就是说在 QQ 中评论 typecho 博客时,由于获取到 QQ 内置浏览器 agent 信息过长导致无法写入数据,那么就好办了,打开 agent 标签,将原来的 varchar(200) 修改为 varchar(400),就是将最大字符扩大到 400 字符,然后保存测试。

这次没有再出现错误了,可以顺利提交。然后我去数据库看了下 QQ 内置浏览器的 agent,发现确实很长啊,一共 230 多字符,怪不得 200 字符时报错。

因为可能有很少人在 QQ 中打开 typecho 博客并且评论,所以说这可能是个不算 BUG 的 BUG,但是博主的强迫症导致我最终解决了这个问题。

博主也不是大神,也不知道这样改了最大字符数会不会对网站产生什么影响,反正我现在用着挺好,没有问题,哈哈。你也可以试试在 QQ 中打开你的博客(只针对 typecho 系统)评论下试试,看可以提交吗?

如果本文对您有用的话,欢迎在下方留言评论哦~

(๑´ㅂ`๑) 已有5人微信打赏,心情+5...

Typecho 提交评论 BUG

昨天偶然间在 QQ 中打开自己的博客,由于这两天在测试评论功能,所以在 QQ 打开博客后准备试着留言一下看看,诡异的事情发生了,点击提交按钮后出现 500 界面,当时我是懵逼的,什么鬼,明明很正常的留言为什么提交会出现 500。

500c.jpg

冷静一番后,首先怀疑是不是我手机问题,开始把抽屉里压箱底的手机都翻出来装上 QQ 试试,经过测试,ios10.3.3 下的QQ、ios12.4 下的 QQ 以及 N 部安卓手机 QQ 打开博客进行评论都出现了无法提交的情况。

在非常郁闷的时候,突然想到,typecho 可以打开调试模式(非常推荐大家在网站有问题的时候打开调试模式看报错),立即在 config.inc.php 文件结尾处加上define('__TYPECHO_DEBUG__',true);,然后重新再 QQ 中提交评论,错误页面显示如下代码:

SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'agent' at row 1
Typecho_Db_Query_Exception: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'agent' at row 1 in /www/wwwroot/jdeal_cn/var/Typecho/Db/Adapter/Pdo.php:105
Stack trace:
#0 /www/wwwroot/jdeal_cn/var/Typecho/Db.php(353): Typecho_Db_Adapter_Pdo->query('INSERT INTO typ...', Object(PDO), 2, 'INSERT')
#1 /www/wwwroot/jdeal_cn/var/Widget/Abstract/Comments.php(189): Typecho_Db->query(Object(Typecho_Db_Query))
#2 /www/wwwroot/jdeal_cn/var/Widget/Feedback.php(140): Widget_Abstract_Comments->insert(Array)
#3 /www/wwwroot/jdeal_cn/var/Widget/Feedback.php(336): Widget_Feedback->comment()
#4 /www/wwwroot/jdeal_cn/var/Typecho/Router.php(138): Widget_Feedback->action()
#5 /www/wwwroot/jdeal_cn/index.php(26): Typecho_Router::dispatch()
#6 {main}

简单了看了下,说是数据库里第1行的“agent”列的数据太长,作为小白的我打开数据库查看了下,agent 是获取操作系统及浏览器的。

sjka.jpg

那大概意思就是说在 QQ 中评论 typecho 博客时,由于获取到 QQ 内置浏览器 agent 信息过长导致无法写入数据,那么就好办了,打开 agent 标签,将原来的 varchar(200) 修改为 varchar(400),就是将最大字符扩大到 400 字符,然后保存测试。

sjkx.jpg

这次没有再出现错误了,可以顺利提交。然后我去数据库看了下 QQ 内置浏览器的 agent,发现确实很长啊,一共 230 多字符,怪不得 200 字符时报错。

因为可能有很少人在 QQ 中打开 typecho 博客并且评论,所以说这可能是个不算 BUG 的 BUG,但是博主的强迫症导致我最终解决了这个问题。

博主也不是大神,也不知道这样改了最大字符数会不会对网站产生什么影响,反正我现在用着挺好,没有问题,哈哈。你也可以试试在 QQ 中打开你的博客(只针对 typecho 系统)评论下试试,看可以提交吗?

plbug.jpg

发表你的评论
选择表情
  1. ahxx
    B罩

    谢谢楼主分享,我去测试一下

    火狐浏览器 广东省深圳市 联通
  2. Kane
    B罩

    这个问题我也遇到了,不过我只改成了 255 位长。

    Chrome 北京市 联通
    1. Jdeal
      主人
      @Kane

      255基本应该不会报错了,主流浏览器都没多长,就是QQ内嵌的浏览器有点略长~ aru_16.png

      Chrome 江苏省无锡市 电信
  3. Universe
    A罩

    大神你这个HOME页面怎么建立了?求解?

    Chrome 湖北省武汉市 电信
    1. Jdeal
      主人
      @Universe

      友情链接页面没用插件,就是自带的独立页面添加的,home页面是在header.php文件里添加了首页超链接额。

      Chrome 江苏省无锡市 电信
  4. 平顶山
    A罩

    没问题

    Chrome 江苏省南通市 移动
  5. Mark
    A罩

    关注了,独立分析问题,好评

    Chrome 山东省青岛市 联通
    1. Jdeal
      主人
      @Mark

      感谢关注,欢迎欢迎~

      Chrome 江苏省无锡市 电信
  6. 无主无名
    B罩

    确实有这个BUG,前几天也遇到了 aru_25.png

    搜狗浏览器 黑龙江省哈尔滨市 哈尔滨工业大学
    1. Jdeal
      主人
      @无主无名

      我也是无意中在QQ里评论自己的网站才发现的。

      Chrome 江苏省无锡市 电信
  7. 艾米
    A罩

    看着很厉害的亚子

    火狐浏览器 山东省 电信
    1. Jdeal
      主人
      @艾米

      没有没有,小白一个 aru_33.png

      Chrome 江苏省无锡市 电信
  8. zmmio
    C罩

    来啦来啦,同样的主题,同样的爱折腾,哈哈! aru_23.png

    Email浏览器 四川省 移动数据上网公共出口
    1. Jdeal
      主人
      @zmmio

      这速度,可以的,兄弟是坐火箭来的吧~ aru_24.png

      Chrome 江苏省无锡市 电信
      1. zmmio
        C罩
        @Jdeal

        看到你在我哪里来了,我瞬间就乘坐宇宙飞船来了,哈哈

        Email浏览器 四川省 移动数据上网公共出口