使用discuz的人应该都知道,用户名注册的时候会经常遇到“用户名包含敏感字符或被系统屏蔽,请返回重新填写”这样的问题,造成这样的问题原因有两个,一个就是如提示所说,遇到敏感字符被屏蔽,今天遇到了另外一个情况:因为用户名长度超过限制造成屏蔽,下面以笔者使用的Discuz+Ucenter+UCHOME说说解决办法: 修改程序文件:
找到下面三个文件,Ucenter下model文件夹中user.php、Discuz下uc_client文件夹中user.php、UCHOME下uc_client文件夹中user.php,使用文本编辑工具打开,找到以“if($len”开头的验证用户名长度和是否含有敏感字符的代码,Ucenter和Discuz中是if($len > 15 || $len < 3,就是用户名不大于15不小于3,UCHOME中是if($len > 10 || $len < 3,用户名不小于3不大于10,将这些数字改成您需要的数字,笔者设置的是不大于30不小于3。改成if($len > 30 || $len < 3, 使用discuz x1.5修改两个文件夹下的user.php /uc_client/model/和/uc_server/model/这两个文件夹下的user.php找到以“if($len”开头的验证用户名长度和是否含有敏感字符的代码if($len > 15 || $len < 3,改成if($len > 30 || $len < 3, 注意:这个是英文字符长度,如果是utf版,每中文字符占用3,gbk版每字符占用2。
修改数据库:
将Discuz、Ucenter、UCHOME三个的数据库member数据表[Username]字段的长度修改为上面设置的数字,如30。
现在再去提交,就可以发现已经可以提交超过5个中文(UTF版)或7个中文(GBK版)字符长度的用户名了。
参考链接;http://blog.sina.com.cn/s/blog_66a0738b0100m3ix.html
|