您的位置:首页 > 数据库

Discuz3.2版本 修改注册用户名长度限制

2017-02-25 18:39 471 查看
Discuz默认的15个字符太短了,从别的系统同步过来用户名都无法插入到数据库啊,下面是修改的记录,把15的地方改成需要的就行了,这里改成45。

⚠️:下面的文件名,可能大小写不一样,如果找不到就去那个目录下搜搜类似的文件看看,汉字和字符的区别注意下

主要分为代码和数据2个部分,小小的需求改动还蛮大的。

代码部分

1、
source/class/class_member.php
输入验证修改,搜索关键词
usernamelen


} elseif($usernamelen > 15) {                                   showmessage('profile_username_toolong');
}


把15修改成45

2、
source/language/lang_message.php
提示语的验证部分,搜索关键词
profile_username_toolong
, 然后根据需要修改

'profile_username_toolong' => '抱歉,您的用户名超过 15 个字符,请输入一个较短的用户名',


3、
source/language/mobile/lang_template.php
修改页面模版, 搜索关键词
reg_username
registerinputtip
修改对应的文字

'registerinputtip' => '用户名:3-15位',


4、
source/module/forum/forum_ajax.php
(Forum_ajax.php) 修改ajax表单验证,搜索关键词
usernamelen


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


5、
uc_client/model/user.php
搜索关键词
check_username


function check_username($username) {
$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
$len = $this->dstrlen($username);
if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username)) {
return FALSE;
} else {
return TRUE;
}
}


6、
static/js/register.js
搜索关键词
unlen


var unlen = username.replace(/[^\x00-\xff]/g, "**").length;
if(unlen < 3 || unlen > 15) {
errormessage(id, unlen < 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 15 个字符');
return;
}


判断和错误提示都要改

7、
template/default/member/register.htm
125行左右

setting['reginput']['username']}" name="" class="px" tabindex="1" value="{echo dhtmlspecialchars($_GET[defaultusername])}" autocomplete="off" size="25" maxlength="15" required="">


修改maxlength的值

数据库部分

代码改完了,还有数据库啊(看到论坛很多帖子都没提这事,也不知道他们自己做过没有),可以到数据库自行查询下,username字段的类型是
char(15)


DESC pre_ucenter_members;
DESC pre_common_member;


要改的表比这多很多的哈,如果长度不同,只要放到文本编辑器中,使用编辑器进行
全局替换
就能得到想要的SQL喽

ALTER TABLE `pre_ucenter_members` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_common_member` MODIFY COLUMN `username`  VARCHAR(45);

ALTER TABLE `pre_common_adminnote` MODIFY COLUMN `admin`  VARCHAR(45);
ALTER TABLE `pre_common_banned` MODIFY COLUMN `admin`  VARCHAR(45);
ALTER TABLE `pre_common_diy_data` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_common_grouppm` MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_common_member_crime` MODIFY COLUMN `operator`  VARCHAR(45);
ALTER TABLE `pre_common_member_validate` MODIFY COLUMN `admin`  VARCHAR(45);
ALTER TABLE `pre_common_mytask` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_common_report` MODIFY COLUMN `username`  VARCHAR(45), MODIFY COLUMN `opname`  VARCHAR(45);
ALTER TABLE `pre_common_session` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_common_word` MODIFY COLUMN `admin`  VARCHAR(45);
ALTER TABLE `pre_common_card_log` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_common_failedlogin` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_common_invite` MODIFY COLUMN `fusername`  VARCHAR(45);
ALTER TABLE `pre_common_member_verify_info` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_forum_announcement` MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_forum_collection` MODIFY COLUMN `username`  VARCHAR(45),MODIFY COLUMN `lastposter`  VARCHAR(45);
ALTER TABLE `pre_forum_collectioncomment` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_forum_collectionfollow` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_forum_collectionteamworker` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_forum_creditslog` MODIFY COLUMN `fromto`  VARCHAR(45);
ALTER TABLE `pre_forum_forumrecommend` MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_forum_groupuser` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_forum_order` MODIFY COLUMN `admin`  VARCHAR(45);
ALTER TABLE `pre_forum_pollvoter` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_forum_post` MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_forum_postcomment` MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_forum_promotion` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_forum_ratelog` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_forum_rsscache` MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_forum_thread` MODIFY COLUMN `author`  VARCHAR(45),MODIFY COLUMN `lastposter`  VARCHAR(45);
ALTER TABLE `pre_forum_threadmod` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_forum_trade` MODIFY COLUMN `seller`  VARCHAR(45),MODIFY COLUMN `lastbuyer`  VARCHAR(45);
ALTER TABLE `pre_forum_tradecomment` MODIFY COLUMN `rater`  VARCHAR(45),MODIFY COLUMN `ratee`  VARCHAR(45);
ALTER TABLE `pre_forum_tradelog` MODIFY COLUMN `seller`  VARCHAR(45),MODIFY COLUMN `buyer`  VARCHAR(45);
ALTER TABLE `pre_forum_warning` MODIFY COLUMN `operator`  VARCHAR(45),MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_home_album` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_blog` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_clickuser` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_comment` MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_home_docomment` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_doing` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_feed` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_feed_app` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_follow` MODIFY COLUMN `username`  VARCHAR(45),MODIFY COLUMN `fusername`  VARCHAR(45);
ALTER TABLE `pre_home_follow_feed` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_follow_feed_archiver` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_friend` MODIFY COLUMN `fusername`  VARCHAR(45);
ALTER TABLE `pre_home_friend_request` MODIFY COLUMN `fusername`  VARCHAR(45);
ALTER TABLE `pre_home_notification` MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_home_pic` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_poke` MODIFY COLUMN `fromusername`  VARCHAR(45);
ALTER TABLE `pre_home_share` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_show` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_home_specialuser` MODIFY COLUMN `username`  VARCHAR(45),MODIFY COLUMN `opusername`  VARCHAR(45);
ALTER TABLE `pre_home_visitor` MODIFY COLUMN `vusername`  VARCHAR(45);
ALTER TABLE `pre_portal_rsscache` MODIFY COLUMN `author`  VARCHAR(45);
ALTER TABLE `pre_portal_topic_pic` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_ucenter_admins` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_ucenter_badwords` MODIFY COLUMN `admin`  VARCHAR(45);
ALTER TABLE `pre_ucenter_feeds` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_ucenter_mergemembers` MODIFY COLUMN `username`  VARCHAR(45);
ALTER TABLE `pre_ucenter_protectedmembers` MODIFY COLUMN `username`  VARCHAR(45),MODIFY COLUMN `admin`  VARCHAR(45);


改完之后要清除缓存

参考 http://sell.moe/discuz最新修改注册用户名长度限制.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  discuz 数据库 用户名