|
发表于 2017-2-1 16:19:35
|阅读模式
本方法根据网上 Discuz! X2.5版本,在3.3上试验通过。
Discuz!一直以来,用户名的字节长度都限制在3-15,而UTF8编码,一个汉字则占二至三个字节,这样用汉字注册的用户名,字数就可能不够用。我的网站:花木成蹊论坛,设置为24字节,以下是修改步聚。
一、打开/source/class/class_member.php,找到如下代码:- if($usernamelen < 3) {
- showmessage('profile_username_tooshort');
- } elseif($usernamelen > 15) {
- showmessage('profile_username_toolong');
- }
复制代码 将15改为24。
二、打开/source/language/lang_message.php,打到:- 'profile_username_toolong' => '抱歉,您的用户名超过 15 个字符,请输入一个较短的用户名',
复制代码 同样将15改为24。
三、打开/source/language/member/lang_template.php,找到:- 'register_username_tips' => '用户名由 3 到 15 个字符组成',
复制代码 同样将15改为24。
四、打开/source/language/mobile/lang_template.php,找到:- 'reg_username' => '用户名必须为大于3位小于15位',
复制代码 同样将15改为24。
五、打开/source/module/forum/Forum_ajax.php,找到:- elseif($usernamelen > 15) {
复制代码 同样将15改为24。
六、打开/uc_client/model/user.php,找到:- if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*"\s\<\>\&]|$guestexp/is", $username)) {
复制代码 同样将15改为24。
七、打开/static/js/register.js,找到:- if(unlen < 3 || unlen > 15) {
- errormessage(id, unlen < 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 15 个字符');
- return;
- }
复制代码 同样将15改为24。
八、打开/template/default/member/register.htm,找到:- <input type="text" id="{$this->setting['reginput']['username']}" name="" class="px" tabindex="1" value="{echo dhtmlspecialchars($_GET[defaultusername])}" autocomplete="off" size="25" maxlength="15" required />
复制代码 同样将15改为24。
九、以上是修改程序代码,下面还需要修改数据库,才算完功。运行以下SQL:- ALTER TABLE pre_ucenter_admins MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_ucenter_feeds MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_ucenter_members MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_ucenter_mergemembers MODIFY username CHAR(24) NOT NULL;
- ALTER TABLE pre_ucenter_protectedmembers MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_adminnote MODIFY admin VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_banned MODIFY admin VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_card_log MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_diy_data MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_failedlogin MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_grouppm MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_invite MODIFY fusername CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_member MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_member_validate MODIFY admin VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_member_verify_info MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_mytask MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_report MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_report MODIFY opname VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_session MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_common_word MODIFY admin VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_announcement MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_forumrecommend MODIFY author CHAR(24) NOT NULL;
- ALTER TABLE pre_forum_groupuser MODIFY username CHAR(24) NOT NULL;
- ALTER TABLE pre_forum_order MODIFY admin CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_pollvoter MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_promotion MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_post MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_postcomment MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_ratelog MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_rsscache MODIFY author CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_thread MODIFY author CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_threadmod MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_forum_trade MODIFY seller CHAR(24) NOT NULL;
- ALTER TABLE pre_forum_tradecomment MODIFY rater CHAR(24) NOT NULL ;
- ALTER TABLE pre_forum_tradelog MODIFY seller VARCHAR(24) NOT NULL ;
- ALTER TABLE pre_forum_tradelog MODIFY buyer VARCHAR(24) NOT NULL ;
- ALTER TABLE pre_forum_warning MODIFY operator CHAR(24) NOT NULL ;
- ALTER TABLE pre_forum_warning MODIFY author CHAR(24) NOT NULL;
- ALTER TABLE pre_home_album MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_blog MODIFY username CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_clickuser MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_comment MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_docomment MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_doing MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_feed MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_feed_app MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_friend MODIFY fusername VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_friend_request MODIFY fusername CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_notification MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_pic MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_poke MODIFY fromusername VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_share MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_show MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_specialuser MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_specialuser MODIFY opusername VARCHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_home_visitor MODIFY vusername CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_portal_rsscache MODIFY author CHAR(24) NOT NULL DEFAULT '';
- ALTER TABLE pre_portal_topic_pic MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
复制代码 如果有“pre_myrepeats”列表(应该是安装了“我的马甲”这一插件才有),则要加上一条:- ALTER TABLE pre_myrepeats MODIFY username varchar(50) NOT NULL DEFAULT '';
复制代码 注意“pre”要换成你自己的数据库前缀! |
|