Discuz3.2版本 修改注册用户名长度限制
2017-02-25 18:39
471 查看
Discuz默认的15个字符太短了,从别的系统同步过来用户名都无法插入到数据库啊,下面是修改的记录,把15的地方改成需要的就行了,这里改成45。
⚠️:下面的文件名,可能大小写不一样,如果找不到就去那个目录下搜搜类似的文件看看,汉字和字符的区别注意下
主要分为代码和数据2个部分,小小的需求改动还蛮大的。
把15修改成45
2、
3、
4、
5、
6、
判断和错误提示都要改
7、
修改maxlength的值
要改的表比这多很多的哈,如果长度不同,只要放到文本编辑器中,使用编辑器进行
改完之后要清除缓存
参考 http://sell.moe/discuz最新修改注册用户名长度限制.html
⚠️:下面的文件名,可能大小写不一样,如果找不到就去那个目录下搜搜类似的文件看看,汉字和字符的区别注意下
主要分为代码和数据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.htm125行左右
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!X3.2修改用户名注册长度限制的方法
- Discuz!修改注册用户名长度限制的方法
- 修改UCenter 版本1.6用户名长度限制的方法
- 修改UCenter用户名长度限制的方法
- AIX修改用户名和密码长度限制
- discuz修改注册时提示的用户名不得小于3 个字符
- 修改UCenter用户名长度限制的方法
- Discuz!论坛运营之修改帖子10000字节长度限制最大字数的方法
- 修改使用UCenter注册时的验证用户名的长度
- discuz在线人数修改及注册非法字符提示解决方法
- Discuz!教程之门户列表页文章摘要字数长度修改
- Git如果修改已经注册的用户名和邮箱
- discuz 注册和登陆成功后跳转页面修改
- 修改dedecms文章标题长度限制的方法
- 注册用户名字符长度判断细节
- 我发起一个http url,本地没问题,发布到测试环境后,报错post 400 bad request,原来是测试的tomcat版本比较高,它对post的长度做了限制。
- discuz “欣” “衡” 用户不能注册 bug修改
- java在线聊天项目 客户端登陆窗口LoginDialog的注册用户功能 修改注册逻辑 增空用户名密码的反馈 增加showMessageDialog()提示框
- DedeCMS 5.7 tag标签长度限制的修改方法
- Discuz 6.0+ 批量注册用户名