discuz出现:用户名包含敏感字符 用户名不得超过 15 个字符 怎么解决

discuz出现:用户名包含敏感字符 用户名不得超过 15 个字符 怎么解决?最近在用火车头发布discuz的时候,发现了总有一些文章发布不成功。找了很多原因后来才找到解决办法。

原来并非火车头的问题,是因为你的discuz论坛的注

[时间:12-26]    [浏览:]    [放入收藏夹]    [查看详情]
discuz出现:用户名包含敏感字符 用户名不得超过 15 个字符 怎么解决?最近在用火车头发布discuz的时候,发现了总有一些文章发布不成功。找了很多原因后来才找到解决办法。

原来并非火车头的问题,是因为你的discuz论坛的注册用户名设置了用户名不能超过15个字符。这个我们改一下就可以了。
 




Discuz!修改注册用户名长度限制的方法

 

1:修改了/uc_client/model/user.php和/uc_server/model/user.php文件中(第44行)及修改数据库用户名长度值后
 

2:下面是第二种方法:
 

在Discuz!中,系统默认的用户名长度是 3-15字节,但有一些网站可能会因为各种原因需要将用户名长度的限制做一些修改。所以结合之前的一些经验,完成了修改 注册用户名长度 的办法详细如下:
 
1、修改注册类和用户名检查提示
打开 /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. }

打开 /source/module/forum/forum_ajax.php 文件
找到

 
  1. if($usernamelen < 3) {
  2. showmessage('profile_username_tooshort', '', array(), array('handle' => false));
  3. } elseif($usernamelen > 15) {
  4. showmessage('profile_username_toolong', '', array(), array('handle' => false));
  5. }
打开文件 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. }

打开文件 static/js/register.js
找到

 
  1. if(unlen < 3 || unlen > 15) {
  2. errormessage(id, unlen < 3 ? '用户名不得小于 3 个字符' : '用户名不得超过 15 个字符');
  3. return;
  4. }

把上面的15改成你需要的数字
 
2、修改语言包提示语句
打开 /source/language/lang_message.php 文件
找到
'profile_username_toolong' => '抱歉,您的用户名超过 15 个字符,请输入一个较短的用户名',
把上面的15改成你需要的数字
打开 /source/language/mobile/lang_template.php 文件
找到

 
  1. 'reg_username' => '用户名必须为大于3位小于15位',
  2.  
  3.  
  4. 'registerinputtip' => '用户名:3-15位',

把上面的15都改成你需要的数字
到这里就全部改完了。

 


标签: