密通学院

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 16|回复: 0

[教程] discuz “欣” “衡” 用户不能注册 bug修改

[复制链接]
  • TA的每日心情
    可爱
    2018-6-29 10:04
  • 282

    主题

    310

    帖子

    8万

    铜板

    超级版主

    Rank: 8Rank: 8

    积分
    89336
    QQ
    发表于 2023-1-10 23:02:06 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    discuz “欣” “衡” 用户不能注册,原因是 discuz 有这样一段代码:
    function check_username($username) {
                    $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
                    if(preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username)) {
                            return FALSE;
                    } else {
                            return TRUE;
                    }
            }

    其中$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';会匹配带有"欣","衡" 的用户名,因为
    再utf-8 中 , "欣"编码为:\xE6\xAC\xA3, "衡"编码为:\xE8\xA1\xA1
    110709kdpzdfqfyz7dyghz.png

    bug修改:
    $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
    改为:
    $guestexp = '(?<!\xE8)\xA1\xA1|(?<!\xE6)\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';

    这样既可以匹配带有 \xA1\xA1|\xAC\xA3 编码的utf-8 特殊字符,又不会匹配 "欣","衡"。

    如果您有业务需求,可以和我联系:http://wpa.qq.com/msgrd?V=3&amp; ... yes&amp;from=discuz
    回复

    使用道具 举报

    快速回复: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    首页|Archiver|手机版|小黑屋|密通学院:专业网络营销服务商

    GMT+8, 2023-2-8 15:57 , Processed in 0.566407 second(s), 30 queries QQ

    Powered by XMT Inc. © 2015-2024 ArrayV1.0 豫ICP备17022382号

    系统运营:密城通 豫公网安备 41018302000212 号

    快速回复 返回顶部 返回列表