Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 如何修改允许使用的用户名长度{最小值} Discuz!X2.0

[复制链接]
CoolRock 发表于 2011-6-1 18:44:23 | 显示全部楼层 |阅读模式
本帖最后由 CoolRock 于 2012-5-3 08:58 编辑

适用于与Discuz! X2.0 / Discuz! X2.5

以 修改 用户名最小值为 5 为例说明。最大值一次类推
1.先修改 语言包
/source/language/lang_message.php
  1. 'profile_username_tooshort' => '抱歉,您输入的用户名小于 5 个字符,请输入一个较长的用户名',
复制代码
/source/language/member/lang_template.php     
  1. 'register_username_tips' => '用户名由 5 到 15 个字符组成',
复制代码
2.修改js

/static/js/register.js
  1. var unlen = username.replace(/[^\x00-\xff]/g, "**").length;
  2.         if(unlen < 3 || unlen > 15) {
  3.                 errormessage(id, unlen < 3 ? '用户名小于 3 个字符' : '用户名超过 15 个字符');
  4.                 return;
  5.         }
复制代码
修改为

  1. var unlen = username.replace(/[^\x00-\xff]/g, "**").length;
  2.         if(unlen < 5 || unlen > 15) {
  3.                 errormessage(id, unlen < 5 ? '用户名小于 5 个字符' : '用户名超过 15 个字符');
  4.                 return;
  5.         }
复制代码
3.修改注册文件
source/class/class_member.php
  1. $usernamelen = dstrlen($username);
  2.                                 if($usernamelen < 3) {
  3.                                         showmessage('profile_username_tooshort');
  4.                                 } elseif($usernamelen > 15) {
  5.                                         showmessage('profile_username_toolong');
  6.                                 }
复制代码
修改为
  1. $usernamelen = dstrlen($username);
  2.                                 if($usernamelen < 5) {
  3.                                         showmessage('profile_username_tooshort');
  4.                                 } elseif($usernamelen > 15) {
  5.                                         showmessage('profile_username_toolong');
  6.                                 }
复制代码
/source/module/forum/forum_ajax.php
  1. $username = trim($_G['gp_username']);
  2.         $usernamelen = dstrlen($username);
  3.         if($usernamelen < 3) {
  4.                 showmessage('profile_username_tooshort', '', array(), array('handle' => false));
  5.         } elseif($usernamelen > 15) {
  6.                 showmessage('profile_username_toolong', '', array(), array('handle' => false));
  7.         }
复制代码
修改为
  1. $username = trim($_G['gp_username']);
  2.         $usernamelen = dstrlen($username);
  3.         if($usernamelen < 5) {
  4.                 showmessage('profile_username_tooshort', '', array(), array('handle' => false));
  5.         } elseif($usernamelen > 15) {
  6.                 showmessage('profile_username_toolong', '', array(), array('handle' => false));
  7.         }
复制代码
/uc_client/model/user.php
  1. function check_username($username) {
  2.                 $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
  3.                 $len = $this->dstrlen($username);
  4.                 if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*"\s\<\>\&]|$guestexp/is", $username)) {
  5.                         return FALSE;
  6.                 } else {
  7.                         return TRUE;
  8.                 }
  9.         }
复制代码
修改为
  1. function check_username($username) {
  2.                 $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
  3.                 $len = $this->dstrlen($username);
  4.                 if($len > 15 || $len < 5 || preg_match("/\s+|^c:\\con\\con|[%,\*"\s\<\>\&]|$guestexp/is", $username)) {
  5.                         return FALSE;
  6.                 } else {
  7.                         return TRUE;
  8.                 }
  9.         }
复制代码
4.修改Ucenter  独立安装位置:  /model/user.php       非独立安装Ucenter位置: /uc_server/model/user.php
  1. function check_username($username) {
  2.                 $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
  3.                 $len = $this->dstrlen($username);
  4.                 if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*"\s\<\>\&]|$guestexp/is", $username)) {
  5.                         return FALSE;
  6.                 } else {
  7.                         return TRUE;
  8.                 }
  9.         }
复制代码
修改为
  1. function check_username($username) {
  2.                 $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
  3.                 $len = $this->dstrlen($username);
  4.                 if($len > 15 || $len < 5 || preg_match("/\s+|^c:\\con\\con|[%,\*"\s\<\>\&]|$guestexp/is", $username)) {
  5.                         return FALSE;
  6.                 } else {
  7.                         return TRUE;
  8.                 }
  9.         }
复制代码
修改完整,修改最大长度 一次类推修改!! 请支持 下 www.doopen.net
感谢 qqchunchun 的细心


评分

3

查看全部评分

 楼主| CoolRock 发表于 2011-6-1 19:24:49 | 显示全部楼层
看来没啥用处啊!!!对大家!!!!!!
回复

使用道具 举报

leixuok 发表于 2011-6-8 11:40:44 | 显示全部楼层
先顶了再测试。正在找这个东西,很有用。谢谢楼主。楼主继续加油分享好东东出来喔
回复

使用道具 举报

花到飞靡 发表于 2011-6-8 11:42:37 | 显示全部楼层
感谢分享,支持一下·~~
回复

使用道具 举报

leixuok 发表于 2011-6-8 11:43:25 | 显示全部楼层
从其他地方找到的消息,只做了前两步,没有解决根本的问题!虽然都有红色提示了。但用户强制提交的话,只要在默认的3-15范围内一样可以成功!
回复

使用道具 举报

leixuok 发表于 2011-6-8 11:59:53 | 显示全部楼层
再来顶一下,修改过程中,发现楼主的/uc_client/model/user.php和下面的修改UCENTER文件重复了样。
建议楼主把第三部份的后面两部份删除,避免引起误解!
回复

使用道具 举报

leixuok 发表于 2011-6-8 12:40:06 | 显示全部楼层
再来补充一个,楼主的方法都可以彻底解决根本的问题了。但我在改动的过程中间,再次发现一小点点不足的地方,就是用户在不满足情况下强制提交的时候,提示的错误信息与之前的设置不匹配。
现特分享了来,还需要修改“消息”文件
source\language\lang_message.php

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

修改成你想要的内容即可
至此。修改用户名长度的问题算是完美解决了!
http://x.leishi.org/member.php?mod=L_reg
欢迎到我的站点参观效果!嘿嘿
回复

使用道具 举报

www.wendy@.com 发表于 2011-6-8 12:43:02 | 显示全部楼层
路过,看看!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-16 21:52 , Processed in 0.044805 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表