Sivo 悉见

限制uchome注册用户名的最少字符数和最长字符数

匿名 · 更新于 2014/04/18 02:11:44

有人问这个问题,我就给分享一下,也没查别人是否发过,留个记号吧,希望对大家有帮助

需要改页面的验证和后台处理程序的验证
1 页面验证
  代开./template/default/do_register.htm

找到
  1.         function checkUserName() {
  2.                 var userName = $('username').value;
  3.                 if(userName == lastUserName) {
  4.                         return;
  5.                 } else {
  6.                         lastUserName = userName;
  7.                 }
  8.                 var cu = $('checkusername');
  9.                 var unLen = userName.replace(/[^\x00-\xff]/g, "**").length;
  10.  
  11.                 if(unLen < 5 || unLen > 15) {
  12.                         warning(cu, unLen < 5 ? '用户名小于5个字符' : '用户名超过 15 个字符');
  13.                         return;
  14.                 }
  15.                 ajaxresponse('checkusername', 'op=checkusername&username=' + (is_ie && document.charset == 'utf-8' ? encodeURIComponent(userName) : userName));
  16.         }
  17.  
复制代码
修改
                if(unLen < 3 || unLen > 15) {
                        warning(cu, unLen < 3 ? '用户名小于3个字符' : '用户名超过 15 个字符');
                        return;
                } 
3 和 15是用户名的最小最大长度 ,修改即可

2 修改后台程序
  打开./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 = strlen($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.         }
  10.  
复制代码
同样把 15 和 3 改成和上一步修改的相应即可