discuz注册不能用“衡、欣”作为用户名的解决方法 [复制链接]

moqu8 2017-11-1

3351 0
今天发现在Discuz用中文注册有“欣”字的用户名时,会提示“用户名包含敏感字符或被系统屏蔽,请返回重新填写”,造成无法进行。查了好久终于发现问题所在。
906259f8a3865917d.png
  发现在./uc_client/model/user.php和./uc_server/model/user.php两个文件中,在这个过滤中$guestexp = ‘xA1xA1|xACxA3|^Guest|^xD3xCExBFxCD|xB9x43xABxC8′;
  “欣”这个汉字的utf8编码是0xE60xAC0xA3 ,所以就被当成了被屏蔽的字符,,而为什么会出现这个屏蔽呢?在这个过滤中$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';注意标了黑体的“欣”这个汉字的utf8编码是0xE60xAC0xA3 ,所以就被当成了被屏蔽的字符,也就是说,这个问题仅出现在UTF8编码的Discuz程序中,修改方法:

/uc_client/model/user.php和./uc_server/model/user.php这两个文件里面的
$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
修改为:
$guestexp = '^Guest';


然后保存覆盖源文件即可!(修改前请备份以防止出错!!)效果如下图:
7984559f8a4c5cca54.png





最新回复 (0)
返回
支持中心
邮箱:winkill2012@qqcom
新站优化中!部分功能尚未完善,敬请谅解!
支持中心