QQ登录

只需一步,快速开始

开启辅助访问 切换到宽版
搜索

[使用心得] Discuz! X3.3优化修改(十一)——修改注册用户名15字节的长度限制

[复制链接]
发表于 2017-2-1 16:19:35 |阅读模式
本方法根据网上 Discuz! X2.5版本,在3.3上试验通过。

Discuz!一直以来,用户名的字节长度都限制在3-15,而UTF8编码,一个汉字则占二至三个字节,这样用汉字注册的用户名,字数就可能不够用。我的网站:花木成蹊论坛,设置为24字节,以下是修改步聚。

一、打开/source/class/class_member.php,找到如下代码:
  1.                                 if($usernamelen < 3) {
  2.                                         showmessage('profile_username_tooshort');
  3.                                 } elseif($usernamelen > 15) {
  4.                                         showmessage('profile_username_toolong');
  5.                                 }
复制代码
将15改为24。

二、打开/source/language/lang_message.php,打到:
  1. 'profile_username_toolong' => '抱歉,您的用户名超过 15 个字符,请输入一个较短的用户名',
复制代码
同样将15改为24。

三、打开/source/language/member/lang_template.php,找到:
  1. 'register_username_tips' => '用户名由 3 到 15 个字符组成',
复制代码
同样将15改为24。

四、打开/source/language/mobile/lang_template.php,找到:
  1. 'reg_username' => '用户名必须为大于3位小于15位',
复制代码
同样将15改为24。

五、打开/source/module/forum/Forum_ajax.php,找到:
  1. elseif($usernamelen > 15) {
复制代码
同样将15改为24。

六、打开/uc_client/model/user.php,找到:
  1. if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*"\s\<\>\&]|$guestexp/is", $username)) {
复制代码
同样将15改为24。

七、打开/static/js/register.js,找到:
  1.         if(unlen < 3 || unlen > 15) {
  2.                 errormessage(id, unlen < 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 15 个字符');
  3.                 return;
  4.         }
复制代码
同样将15改为24。

八、打开/template/default/member/register.htm,找到:
  1. <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:
  1. ALTER TABLE pre_ucenter_admins MODIFY username CHAR(24) NOT NULL DEFAULT '';
  2. ALTER TABLE pre_ucenter_feeds MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  3. ALTER TABLE pre_ucenter_members MODIFY username CHAR(24) NOT NULL DEFAULT '';
  4. ALTER TABLE pre_ucenter_mergemembers MODIFY username CHAR(24) NOT NULL;
  5. ALTER TABLE pre_ucenter_protectedmembers MODIFY username CHAR(24) NOT NULL DEFAULT '';
  6. ALTER TABLE pre_common_adminnote MODIFY admin VARCHAR(24) NOT NULL DEFAULT '';
  7. ALTER TABLE pre_common_banned MODIFY admin VARCHAR(24) NOT NULL DEFAULT '';
  8. ALTER TABLE pre_common_card_log MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  9. ALTER TABLE pre_common_diy_data MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  10. ALTER TABLE pre_common_failedlogin MODIFY username CHAR(24) NOT NULL DEFAULT '';
  11. ALTER TABLE pre_common_grouppm MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
  12. ALTER TABLE pre_common_invite MODIFY fusername CHAR(24) NOT NULL DEFAULT '';
  13. ALTER TABLE pre_common_member MODIFY username CHAR(24) NOT NULL DEFAULT '';
  14. ALTER TABLE pre_common_member_validate MODIFY admin VARCHAR(24) NOT NULL DEFAULT '';
  15. ALTER TABLE pre_common_member_verify_info MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  16. ALTER TABLE pre_common_mytask MODIFY username CHAR(24) NOT NULL DEFAULT '';
  17. ALTER TABLE pre_common_report MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  18. ALTER TABLE pre_common_report MODIFY opname VARCHAR(24) NOT NULL DEFAULT '';
  19. ALTER TABLE pre_common_session MODIFY username CHAR(24) NOT NULL DEFAULT '';
  20. ALTER TABLE pre_common_word MODIFY admin VARCHAR(24) NOT NULL DEFAULT '';
  21. ALTER TABLE pre_forum_announcement MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
  22. ALTER TABLE pre_forum_forumrecommend MODIFY author CHAR(24) NOT NULL;
  23. ALTER TABLE pre_forum_groupuser MODIFY username CHAR(24) NOT NULL;
  24. ALTER TABLE pre_forum_order MODIFY admin CHAR(24) NOT NULL DEFAULT '';
  25. ALTER TABLE pre_forum_pollvoter MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  26. ALTER TABLE pre_forum_promotion MODIFY username CHAR(24) NOT NULL DEFAULT '';
  27. ALTER TABLE pre_forum_post MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
  28. ALTER TABLE pre_forum_postcomment MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
  29. ALTER TABLE pre_forum_ratelog MODIFY username CHAR(24) NOT NULL DEFAULT '';
  30. ALTER TABLE pre_forum_rsscache MODIFY author CHAR(24) NOT NULL DEFAULT '';
  31. ALTER TABLE pre_forum_thread MODIFY author CHAR(24) NOT NULL DEFAULT '';
  32. ALTER TABLE pre_forum_threadmod MODIFY username CHAR(24) NOT NULL DEFAULT '';
  33. ALTER TABLE pre_forum_trade MODIFY seller CHAR(24) NOT NULL;
  34. ALTER TABLE pre_forum_tradecomment MODIFY rater CHAR(24) NOT NULL ;
  35. ALTER TABLE pre_forum_tradelog MODIFY seller VARCHAR(24) NOT NULL ;
  36. ALTER TABLE pre_forum_tradelog MODIFY buyer VARCHAR(24) NOT NULL ;
  37. ALTER TABLE pre_forum_warning MODIFY operator CHAR(24) NOT NULL ;
  38. ALTER TABLE pre_forum_warning MODIFY author CHAR(24) NOT NULL;
  39. ALTER TABLE pre_home_album MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  40. ALTER TABLE pre_home_blog MODIFY username CHAR(24) NOT NULL DEFAULT '';
  41. ALTER TABLE pre_home_clickuser MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  42. ALTER TABLE pre_home_comment MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
  43. ALTER TABLE pre_home_docomment MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  44. ALTER TABLE pre_home_doing MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  45. ALTER TABLE pre_home_feed MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  46. ALTER TABLE pre_home_feed_app MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  47. ALTER TABLE pre_home_friend MODIFY fusername VARCHAR(24) NOT NULL DEFAULT '';
  48. ALTER TABLE pre_home_friend_request MODIFY fusername CHAR(24) NOT NULL DEFAULT '';
  49. ALTER TABLE pre_home_notification MODIFY author VARCHAR(24) NOT NULL DEFAULT '';
  50. ALTER TABLE pre_home_pic MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  51. ALTER TABLE pre_home_poke MODIFY fromusername VARCHAR(24) NOT NULL DEFAULT '';
  52. ALTER TABLE pre_home_share MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  53. ALTER TABLE pre_home_show MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  54. ALTER TABLE pre_home_specialuser MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
  55. ALTER TABLE pre_home_specialuser MODIFY opusername VARCHAR(24) NOT NULL DEFAULT '';
  56. ALTER TABLE pre_home_visitor MODIFY vusername CHAR(24) NOT NULL DEFAULT '';
  57. ALTER TABLE pre_portal_rsscache MODIFY author CHAR(24) NOT NULL DEFAULT '';
  58. ALTER TABLE pre_portal_topic_pic MODIFY username VARCHAR(24) NOT NULL DEFAULT '';
复制代码
如果有“pre_myrepeats”列表(应该是安装了“我的马甲”这一插件才有),则要加上一条:
  1. ALTER TABLE pre_myrepeats MODIFY username varchar(50) NOT NULL DEFAULT '';
复制代码
注意“pre”要换成你自己的数据库前缀!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即註冊

本版积分规则

本版推荐主题

QQ|网站地图|小黑屋|Archiver|東里論壇 ( 粤ICP备14015598号 ) 公安备案图标粤公网安备 44512202000019号
GMT+8, 2024-3-28 22:52 , Processed in 0.093143 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.