Ucenter和discuz-x2.5修改注册用户名长度限制
php程序和数据库修改
在新发布的Discuz!X 2.5中,系统默认的用户名长度限制仍然是3-15字节。但有一些网站可能会因为各种原因需要将用户名长度的限制做一些修改。
根据网址wenku.baidu/view/1750577701f69e314332945b.html所提供的Discuz!X 2修改方法制作了本文。详细操作如下:
1、在网站/source/class/目录下的class_member.php文件中到如下代码:
if($usernamelen< 3) {
showmessage('profile_username_tooshort');
}elseif($usernamelen> 15) {
showmessage('profile_username_toolong');
}
其中的数值“15”为注册用户名长度的最大值,数值“3”为注册用户名长度的最小值,将这两个值改成你需要的数值即可。例如我的网站需要将注册用户名长度的最大值增大至50,以下均以此为例。则修改上面的代码为:
if($usernamelen< 3) {
showmessage('profile_username_tooshort');
} elseif($usernamelen> 50) {
showmessage('profile_username_toolong');
}
2、在网站/source/language/目录下的lang_message.php文件中,到如下代码:
'profile_username_toolong' => '抱歉 您的用户名超过 15 个字符 请输入一个较短的用户名',
varchar2最大长度修改为
'profile_username_toolong' => '抱歉 您的用户名超过 50 个字符 请输入一个较短的用户名',
3、在网站/source/language/member/目录下的lang_template.php文件中到如下代码
'register_username_tips' => '用户名必须为大于3位小于15位',
修改为
'register_username_tips' => '用户名由 3 到 50 个字符组成',
4、在网站/source/language/mobile/目录下的lang_template.php文件中,到如下代码:
'reg_username' => '用户名必须为大于3位小于15位',
修改为
'reg_username' => '用户名由 3 到 50 个字符组成',
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="50" 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> 50 || $len< 3 || preg_match("/s+|^c:concon|[%,*"s<>&]|$guestexp/is", $username)) {
7、/static/js/register.js 269行:
errormessage(id, unlen< 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 15 个字符');
修改为
errormessage(id, unlen< 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 50 个字符');
8、/source/module/forum/Forum_ajax.php 23行:
elseif($usernamelen> 20) {
修改为
elseif($usernamelen> 50) {
9、修改完代码程序,我们的工作才完成一半。接下来需要修改数据库了:
  以下内容参考www.oicto/ucenter-discuz-username-15/,制作而成。其中,“pre_myrepeats:username[varchar(50)]”所对应的表未到。
ALTER TABLE pre_ucenter_admins MODIFY username CHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_ucenter_feeds MODIFY username VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_ucenter_members MODIFY username CHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_ucenter_mergemembers MODIFY username CHAR(50) NOT NULL;
ALTER TABLE pre_ucenter_protectedmembers MODIFY username CHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_adminnote MODIFY admin VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_banned MODIFY admin VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_card_log MODIFY username VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_diy_data MODIFY username VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_failedlogin MODIFY username CHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_grouppm MODIFY author VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_invite MODIFY fusername CHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_member MODIFY username CHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_member_validate MODIFY admin VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_member_verify_info MODIFY username VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_mytask MODIFY username CHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_report MODIFY username VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_report MODIFY opname VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_session MODIFY username CHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_common_word MODIFY admin VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_forum_announcement MODIFY author VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_forum_forumrecommend MODIFY author CHAR(50) NOT NULL;
ALTER TABLE pre_forum_groupuser MODIFY username CHAR(50) NOT NULL;
ALTER TABLE pre_forum_order MODIFY admin CHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_forum_pollvoter MODIFY username VARCHAR(50) NOT NULL DEFAULT '';
ALTER TABLE pre_forum_promotion MODIFY username CHAR(50) NOT NULL DEFAULT '';

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。