·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

如何禁止纯数字用户名注册

396 2
发表于 2022-6-30 13:09:52 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
因为也不用手机号注册,好多用户名就三五个数字,看着有点不爽
如何禁止纯数字用户名注册,采用字母数字混合,中文数字字母混合等
有没有大佬给个解决方案,感激不尽
我要说一句 收起回复

评论2

Guoyuh78Lv.2 发表于 2022-11-8 15:11:56 | 查看全部 | Google Chrome | Windows 10
同问  没有人回答吗
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-20 12:48:31 | 查看全部
要禁止纯数字用户名注册,可以通过修改Discuz的注册验证逻辑来实现。你可以通过以下步骤来实现这个功能:

### 方法一:通过修改Discuz源代码实现

1. **找到注册验证的文件**:
   通常,注册验证的逻辑位于 `source/class/class_member.php` 文件中。你可以在这个文件中找到用户注册时的验证逻辑。

2. **修改注册验证逻辑**:
   在 `class_member.php` 文件中,找到 `register` 方法或类似的注册验证方法。你可以在这个方法中添加一个正则表达式来验证用户名是否包含非数字字符。

   例如,你可以在注册验证逻辑中添加以下代码:

  
  1. if (preg_match('/^\d+$/', $username)) {
  2.        showmessage('用户名不能为纯数字,请使用字母、数字或中文混合的用户名。');
  3.    }
复制代码


   这段代码会检查用户名是否只包含数字,如果是,则提示用户不能使用纯数字用户名。

3. **保存并测试**:
   保存文件后,尝试在网站上注册一个纯数字的用户名,看看是否会出现提示信息。

### 方法二:通过插件实现

如果你不想直接修改Discuz的源代码,也可以通过开发一个插件来实现这个功能。你可以创建一个插件,在用户注册时检查用户名是否符合要求。

1. **创建插件**:
   在 `source/plugin/` 目录下创建一个新的插件目录,例如 `source/plugin/username_check/`。

2. **编写插件逻辑**:
   在插件目录下创建一个 `plugin.php` 文件,并在其中编写以下代码:

  
  1. <?php
  2.    if (!defined('IN_DISCUZ')) {
  3.        exit('Access Denied');
  4.    }

  5.    class plugin_username_check {
  6.        function register_validate($username) {
  7.            if (preg_match('/^\d+$/', $username)) {
  8.                return '用户名不能为纯数字,请使用字母、数字或中文混合的用户名。';
  9.            }
  10.            return '';
  11.        }
  12.    }

  13.    // 注册钩子
  14.    $plugin_username_check = new plugin_username_check();
  15.    $GLOBALS['hookscript']['register_validate'] = array($plugin_username_check, 'register_validate');
复制代码


   这段代码会在用户注册时检查用户名是否只包含数字,如果是,则返回错误信息。

3. **安装并启用插件**:
   将插件上传到 `source/plugin/` 目录,然后在Discuz后台的插件管理中启用这个插件。

### 方法三:通过模板修改实现

如果你不想修改代码或开发插件,也可以通过修改模板来实现这个功能。你可以在注册页面添加一个JavaScript验证,检查用户名是否符合要求。

1. **找到注册模板文件**:
   通常,注册页面的模板文件位于 `template/default/member/register.htm`。

2. **添加JavaScript验证**:
   在 `register.htm` 文件中,找到用户名输入框的部分,并添加以下JavaScript代码:

  
  1. <script type="text/javascript">
  2.    function validateUsername() {
  3.        var username = document.getElementById('username').value;
  4.        if (/^\d+$/.test(username)) {
  5.            alert('用户名不能为纯数字,请使用字母、数字或中文混合的用户名。');
  6.            return false;
  7.        }
  8.        return true;
  9.    }
  10.    </script>
复制代码


   然后在表单提交时调用这个函数:

  
  1. <form onsubmit="return validateUsername()">
复制代码


3. **保存并测试**:
   保存模板文件后,尝试在网站上注册一个纯数字的用户名,看看是否会出现提示信息。

### 总结

以上三种方法都可以实现禁止纯数字用户名注册的功能。如果你熟悉Discuz的代码结构,推荐使用第一种方法直接修改源代码。如果你不想修改源代码,可以选择第二种方法通过插件实现。第三种方法则适合不想修改代码和开发插件的用户,但需要注意的是,JavaScript验证可以被绕过,因此建议结合服务器端验证一起使用。

如果你有更多问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.59,GMT+8, 2025-5-31 05:41 , Processed in 0.303479 second(s), 82 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表