做了discuz api for java 第三方应用项目的注册登陆。
但是在修改用户名长度的时候。出现了小bug。找到解决发现是自身原因。
在discuz根目录下面有两个相关的文件夹uc_client 和 uc_server
在自己的java项目里面的配置文件调用到了uc_server 下面的model里面的user.php。里面有验证用户名长度。图片有代码。
也要把uc_client 下面的model里面的user.php。里面有验证用户名长度修改。
需要完全修改用户名长度的方法
然后,修改Discuz!X库表pre_xxx
1 pre_common_adminnote:admin[varchar(50)] √
2 pre_common_banned:admin[varchar(50)] √
3 pre_common_card_log:username[varchar(50)] √
4 pre_common_diy_data:username[varchar(50)] √
5 pre_common_failedlogin:username[char(50)] √
6 pre_common_grouppm:author[varchar(50)] √
7 pre_common_invite:fusername[varchar(50)] √
8 pre_common_member:username[char(50)] √
9 pre_common_member_validate:admin[varchar(50)] √
10 pre_common_member_verify_info:username[varchar(50)] √
11 pre_common_mytask:username[char(50)] √
12 pre_common_report:username[varchar(50)],opname[varchar(50)] √
13 pre_common_session:username[char(50)] √
14 pre_common_word:admin[varchar(50)] √
15 pre_forum_announcement:author[varchar(50)] √
16 pre_forum_forumrecommend:author[varchar(50)] √
17 pre_forum_groupuser:username[char(50)] √
18 pre_forum_order:admin[varchar(50)] √
19 pre_forum_pollvoter:username[char(50)] √
20 pre_forum_promotion:username[char(50)] √
21 pre_forum_post:author[varchar(50)] √
22 pre_forum_postcomment:author[varchar(50)] √
23 pre_forum_ratelog:username[char(50)] √
24 pre_forum_rsscache:author[varchar(50)] √
25 pre_forum_thread:author[varchar(50)] √
26 pre_forum_threadmod:username[char(50)] √
27 pre_forum_trade:seller[varchar(50)] √
28 pre_forum_tradecomment:rater[varchar(50)] √
29 pre_forum_tradelog:seller[varchar(50)],buyer[varchar(50)] √
30 pre_forum_warning:operator[varchar(50)],author[varchar(50)] √
31 pre_home_album:username[varchar(50)] √
32 pre_home_blog:username[varchar(50)] √
33 pre_home_clickuser:username[varchar(50)] √
34 pre_home_comment:author[varchar(50)] √
35 pre_home_docomment:username[varchar(50)] √
36 pre_home_doing:username[varchar(50)] √
37 pre_home_feed:username[varchar(50)] √
38 pre_home_feed_app:username[varchar(50)] √
39 pre_home_friend:fusername[varchar(50)] √
40 pre_home_friend_request:fusername[char(50)] √
41 pre_home_notification:author[varchar(50)] √
42 pre_home_pic:username[varchar(50)] √
43 pre_home_poke:fromusername[varchar(50)] √
44 pre_home_share:username[varchar(50)] √
45 pre_home_show:username[varchar(50)] √
46 pre_home_specialuser:username[varchar(50)],opusername[varchar(50)]√
47 pre_home_visitor:vusername[varchar(50)] √
48 pre_myrepeats:username[varchar(50)] √
49 pre_portal_rsscache:author[varchar(50)] √
50 pre_portal_topic_pic:username[varchar(50)] √
Ucenter和discuz-x3修改注册用户名长度限制php程序和数据库修改
1、在网站/source/class/目录下的class_member.php文件中, 找到如下代码:585行
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文件中, 找到如下代码:
<input autocomplete="off" class="px" id="{$this->setting['reginput']['username']}" maxlength="15" name="" required="" size="25" tabindex="1" type="text" />
修改名字输入框的限制字符数量“maxlength”,比如修改为:
<input autocomplete="off" class="px" id="{$this->setting['reginput']['username']}" maxlength="20" name="" required="" size="25" tabindex="1" type="text" />
maxlength="25"
6、在网站/uc_client/model/目录下的/user.php/文件中,找到如下代码:
if($len > 15 || $len < 3 || preg_match("/s+|^c:concon|[%,*"s<>&]|$guestexp/is", $username)) {
+修改为:
if($len > 20 || $len < 3 || preg_match("/s+|^c:concon|[%,*"s<>&]|$guestexp/is", $username)) {
7、/static/js/register.js 269行errormessage(id, unlen < 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 15 个字符');
8、/source/module/forum/Forum_ajax.php elseif($usernamelen > 20) { 23行}