注册 登录
无忧答案网 返回首页

张老师的个人空间 https://www.ap5u.com/?112605 [收藏] [复制] [RSS] 专业远程教辅导

日志

discuz 升级X3.5后,添加用户,出现

已有 21 次阅读2024-12-28 02:07

发现网上有人问:
在升级之后,后台手动添加用户,结果出现:用户名包含敏感字符或被系统屏蔽。
实际上,并没有设置任何关键词或敏感字,也没有在ucenter 设置"语词过滤"。
所以有这样的错误讯息出现,很是奇怪。
不知是不是又是编码的问题?因之前是GBK编码,现在升级X3.5自然是 UTF8 编码了。

无忧答案网经过测试前台注册新用户也存在同样的问题。

根据搜索结果,出现“用户名包含敏感字符或被系统屏蔽”的问题可能由以下几个原因造成:

  1. 编码问题:由于您提到之前使用的是GBK编码,而Discuz X3.5使用的是UTF-8编码,可能存在编码转换问题。请检查您的数据库编码是否已经正确转换为UTF-8

  2. 关键词屏蔽:尽管您表示没有设置任何关键词或敏感字,但有时候服务商可能会安装关键词屏蔽软件,导致某些看似正常的用户名被误判为包含敏感字符。您可以联系您的服务商确认是否有此类软件安装并屏蔽了某些关键词

  3. UCenter设置:请检查UCenter的“用户词语屏蔽设置”,确认是否有被屏蔽的词库,如果有,需要进行相应的调整

  4. 插件影响:如果您安装了与注册相关的插件,它们可能会影响用户名的验证过程。您可以尝试关闭这些插件并更新缓存,然后再次尝试添加用户

  5. 配置文件修改:在升级过程中,如果修改了config_global.phpconfig_ucenter.php文件,请确保不要将utf-8改为utf8,这可能会导致编码问题

排查各种文件未发现明显异常,并且也没有对注册相关文件进行过修改。但是忽然发现莫名其妙出现这个问题。
最后检查发现函数
function check_username($username) {
$charset = strtolower(UC_CHARSET);
if ($charset === 'utf-8') {
// \xE3\x80\x80: utf-8 全角空格
// \xE6\xB8\xB8\xE5\xAE\xA2: utf-8 游客
// \xE9\x81\x8A\xE5\xAE\xA2: utf-8 遊客
$guestexp = '\xE3\x80\x80|\xE6\xB8\xB8\xE5\xAE\xA2|\xE9\x81\x8A\xE5\xAE\xA2';
} elseif ($charset === 'gbk') {
// \xA1\xA1: GBK 全角空格
// \xD3\xCE\xBF\xCD: GBK 游客
$guestexp = '\xA1\xA1|\xD3\xCE\xBF\xCD';
} elseif ($charset === 'big5') {
// \xA1\x40: BIG5 全角空格
// \xB9\x43\xAB\xC8: BIG5 遊客
$guestexp = '\xA1\x40|\xB9\x43\xAB\xC8';
} else {
return FALSE;
}
$guestexp .= '|^Guest';
$len = $this->dstrlen($username);
if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&\(\)']|$guestexp/is", $username)) {
return FALSE;
} else {
return TRUE;
}
}
其中的 $charset 只有 utf-8 gbk big5 三个,否则就是false
检查 config 中发现 charset 有个历史遗留的设置为 utf8
最终解决:
将 /uc_server/data/config.inc.php 文件中,修改为 define('UC_CHARSET', 'utf-8');
注意:utf-8 不能用utf8 。 

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2025-1-5 09:11

Powered by 无忧答案网 X3.5

Copyright © 2018-2020 Design: Ap5u.Com

返回顶部