Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] discuz 3.4 怎么禁止中文名字注册

[复制链接]
bybin 发表于 2020-11-21 02:47:16 | 显示全部楼层 |阅读模式
discuz 3.4 怎么禁止中文名字注册?
babyfacer 发表于 2020-11-21 03:16:13 | 显示全部楼层
倒是有只允许中文注册的插件。说不定你可以安装一个改改
回复

使用道具 举报

 楼主| bybin 发表于 2020-11-21 03:20:40 | 显示全部楼层
babyfacer 发表于 2020-11-21 03:16
倒是有只允许中文注册的插件。说不定你可以安装一个改改

自己找到方法修改了。
回复

使用道具 举报

 楼主| bybin 发表于 2020-11-21 03:24:34 | 显示全部楼层
1:修改uc_client\model\user.php
        function check_username($username) {
                $charset = strtolower(UC_CHARSET);
                if ($charset === 'utf-8') {
                        $guestexp = '\xE3\x80\x80|\xE6\xB8\xB8\xE5\xAE\xA2|\xE9\x81\x8A\xE5\xAE\xA2';
                } elseif ($charset === 'gbk') {
                        $guestexp = '\xA1\xA1|\xD3\xCE\xBF\xCD';
                } elseif ($charset === 'big5') {
                        $guestexp = '\xA1\x40|\xB9\x43\xAB\xC8';
                } else {
                        return FALSE;
                }
                $guestexp .= '|^Guest';

                $len = $this->dstrlen($username);
                if($len > 15 || $len < 3 || !(preg_match("/^([a-zA-z0-9])+$/u",$username)) || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&\(\)']|$guestexp/is", $username)) {
                        return FALSE;
                } else {
                        return TRUE;
                }
        }


2:修改source\language\lang_message.php
在229行左右加 一个错误消息
  'profile_username_tooshort' => '抱歉,您输入的用户名小于 3 个字符,请输入一个较长的用户名',
添加->    'profile_username_notallchinese' => '抱歉,用户名必须是英文或者数字组合',
'profile_username_toolong' => '抱歉,您的用户名超过 15 个字符,请输入一个较短的用户名',
3:source\module\forum\forum_ajax.php
在20行左右加一个判断
if($usernamelen < 3) {
  showmessage('profile_username_tooshort', '', array(), array('handle' => false));
} elseif($usernamelen > 15) {
  showmessage('profile_username_toolong', '', array(), array('handle' => false));
}
添加-> if(!(preg_match("/^([a-zA-z0-9])+$/u",$username))) {
   showmessage('profile_username_notallchinese', '', array(), array('handle' => false));
}


4:source\class\class_member.php
在581行左右加一个判断
if($usernamelen < 3) {
     showmessage('profile_username_tooshort');
    } elseif($usernamelen > 15) {
     showmessage('profile_username_toolong');
    }
添加->   if(!(preg_match("/^([a-zA-z0-9])+$/u",,$username))) {
       showmessage('profile_username_notallchinese');
    }

回复

使用道具 举报

babyfacer 发表于 2020-11-21 03:52:26 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 19:53 , Processed in 0.017382 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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