老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
1,671

Discuz! X “我的马甲 2.4”插件在PHP5.4+下无法显示马甲备注的解决方法

分类 网站技术/村民张先生 发布于 2018-11-11 02:13
0

BUG描述:GBK版本的Discuz! X(3.1版本为例)在PHP5.4+版本下,当马甲备注中含有多个汉字时,前台马甲列表中无法显示备注信息。

原因:htmlspecialchars函数所需转换的内容若无法识别字符集,在PHP 5.4之前的版本中将被忽略并由 ISO-8859-1 替代,自PHP 5.4起,无法被识别的字符集将被忽略并由 UTF-8 替代。

解决方法:应用htmlspecialchars函数时指定GB2312字符集。

打开 source/plugin/myrepeats/memcp.inc.php 文件,查找:

	$myrepeat['comment'] = htmlspecialchars($myrepeat['comment']);

替换为:

	$myrepeat['comment'] = htmlspecialchars($myrepeat['comment'], ENT_COMPAT, 'GB2312');

或者使用Discuz! X的自定义函数 dhtmlspecialchars 处理,该函数已做版本兼容性处理:

	$myrepeat['comment'] = dhtmlspecialchars($myrepeat['comment']);

另 source/plugin/myrepeats/switch.inc.php 中以下代码可能也需要修改(功能尚不明确。添加马甲?),请自行评估处理:

		$username = htmlspecialchars($_GET['username']);
欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/20182082.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截