在新发布的Discuz!X 2中,系统默认的用户名长度限制仍然是3-15字节,但有一些网站可能会因为各种原因需要将用户名长度的限制做一些修改。Discuz!X 1.5发布时已有相关教程,不过升级Discuz!X 2后程序改动较大,所以结合之前的一些经验,整理了这篇修改注册用户名长度的解决方案。详细操作如下:
1、在网站/source/class/目录下的class_member.php文件中, 找到如下代码:if($usernamelen < 3) { showmessage('profile_username_tooshort'); } elseif($usernamelen > 15) { showmessage('profile_username_toolong'); }
其中的数值“15”为注册用户名长度的最大值,数值“3”为注册用户名长度的最小值。将这两个值改成你需要的数值即可,例如我的网站需要将注册用户名长度的最大值增大至20,以下均以此为例。则修改上面的代码为:if($usernamelen < 3) { showmessage('profile_username_tooshort'); } elseif($usernamelen > 20) { showmessage('profile_username_toolong'); }
2、在网站/source/language/目录下的lang_message.php文件中, 找到如下代码:'profile_username_toolong' => '抱歉,您的用户名超过 15 个字符,请输入一个较短的用户名',
修改为:'profile_username_toolong' => '抱歉,您的用户名超过 20 个字符,请输入一个较短的用户名',
3、在网站/source/language/member/目录下的lang_template.php文件中, 找到如下代码:'register_username_tips' => '用户名必须为大于3位小于15位',
修改为:'register_username_tips' => '用户名由 3 到 20 个字符组成',
4、在网站/source/language/mobile/目录下的lang_template.php文件中, 找到如下代码:'reg_username' => '用户名必须为大于3位小于15位',
修改为:'reg_username' => '用户名由 3 到 20 个字符组成',
5、在网站/emplate/default/member/目录下的register.htm文件中, 找到如下代码:
修改名字输入框的限制字符数量“maxlength”,比如修改为:
6、在网站/uc_client/model/目录下的/user.php/文件中,找到如下代码:?1 if($len > 15 || $len < 3 || preg_match("/s+|^c:concon|[%,*"s<>&]|$guestexp/is", $username)) {
修改为:1 if($len > 20 || $len < 3 || preg_match("/s+|^c:concon|[%,*"s<>&]|$guestexp/is", $username)) {