IT618发布 发表于 2020-7-7 09:46:07

Discuz!注册会员时用户名长度限制的解决方法

以下代码中的数值3改成自己想要的最小长度如1,15改成自己想要的最大长度如40

1、uc_client\model\user.php

if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username))

2、template\default\member\register.htm

<input type="text" id="{$this->setting['reginput']['username']}" name="" class="px" tabindex="1" autocomplete="off" size="25" maxlength="15" required />

3、source\language\member\lang_template.php

'register_username_tips' => '用户名由 3 到 15 个字符组成',

4、static\js\register.js

if(unlen < 3 || unlen > 15) {
errormessage(id, unlen < 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 15 个字符');

5、source\class\class_member.php

if($usernamelen < 3) {
   showmessage('profile_username_tooshort');
} elseif($usernamelen > 15) {

6、source/module/forum/forum_ajax.php

if($usernamelen < 3) {
showmessage('profile_username_tooshort', '', array(), array('handle' => false));
} elseif($usernamelen > 15) {

7、升级数据库(只对关键字段进行升级,基本满足正常使用了),本例中最大长度修改为40

ALTER TABLE`pre_common_member` CHANGE`username``username` CHAR( 40 ) ;
ALTER TABLE`pre_home_blog` CHANGE`username``username` CHAR( 40 ) ;
ALTER TABLE`pre_ucenter_members` CHANGE`username``username` CHAR( 40 ) ;
ALTER TABLE`pre_ucenter_mergemembers` CHANGE`username``username` CHAR( 40 ) ;
ALTER TABLE`pre_ucenter_feeds` CHANGE`username``username` CHAR( 40 ) ;
ALTER TABLE`pre_forum_post` CHANGE`author``author` CHAR( 40 ) ;
ALTER TABLE`pre_forum_thread` CHANGE`author``author` CHAR( 40 ) ;
ALTER TABLE`pre_home_album` CHANGE`username``username` CHAR( 40 ) ;
ALTER TABLE`pre_forum_announcement` CHANGE`author``author` CHAR( 40 ) ;
ALTER TABLE`pre_forum_groupuser` CHANGE`username``username` CHAR( 40 ) ;
页: [1]
查看完整版本: Discuz!注册会员时用户名长度限制的解决方法

创宇盾启航版免费网站防御网站加速服务