关注互联网、IT技术!

多说评论服务出现故障,自己动手解决问题

  •  admin
  •  2012-11-21 10:11:10
  •     
现在很多网站都在使用多说社会化评论框,我的一个网站,也在使用。发布文章的时候,多说可以自动同步文章到微博、qq空间等,这个功能很实用。刚才在发文章的时候,遇到了麻烦,提示“Fatal error: Cannot use string offset as an array in ....../wp-content/plugins/duoshuo/WordPress.php on line 592”,文章发布失败。 用了这么长时间,都没出现过问题,所以第一反应就是多说的服务器出故障了,代码没有做足够的异常处理。打开多说插件的代码文件WordPress.php,找到出错的第592行(大家的出错位置应该不是592行,因为我自己在前面加过几行代码,跟官方不太一致,但是大概位置就是590行左右) if (isset($response['code']) && $response['code'] == 0 && isset($response['response'])) 根据错误提示可以知道,$response这个变量是一个字符串,这里被当作了数组使用。其实本来正常情况下,它就是一个数组,但是多说服务器挂了,根据前面的代码 $response = $this->getClient($post->post_author)->request('POST', 'threads/sync', $params); $response 是从服务器获取的,直接输出查看,$response获得的值实际是一行错误提示500 Internal Server Error 500 Internal Server Error nginx,服务器出现500内部错误了。 但是多数的其他服务貌似还没挂掉,评论框还可以正常显示,因为这个错误,就把插件禁用,不值得。所以自己对代码稍作修改,屏蔽掉这个错误信息就行了。 修改方法很简单,只需要在592行出错的代码里,加上一个判断,判断$response是否为数组即可: if (is_array($response)&&isset($response['code']) && $response['code'] == 0 && isset($response['response'])) 改完之后,问题解决。

相关文章

评论

称呼(可以不填)
Email(可以不填)
链接(可以不填)
请输入评论内容*