去评论
dz插件网

我用的是国际版英文如何设置注册用户禁用中文名。

镖师
2026/09/16 14:11:27
登录名禁止用中文,只能用字母和数字就行。








用户名可以改,但登录名改不了,要改只能在数据库去改。所以开始就禁就好了,就没有后面麻烦。


因为登录名语言翻译不到,英文版的还是显示中文的。




原因应该是字体在数据库里面所以翻译不了登录名。



想注册时用户禁用掉中文名。就好。如何设置


1 贡献

      
qkw 发表于 2026-9-15 11:15
来! 简单点的
方法如下(程序文件和模板都需要做对应修改,修改前备份文件)
1. 找到文件:source/class/class_member.php

搜索找到第 471 行:
  1. $username = $_GET['username'] ?? '';
在它下面加三行:
  1. if($username && preg_match('/[\x{4e00}-\x{9fff}]/u', $username)) {    showmessage('用户名不能包含中文字符,请使用英文字母、数字或下划线');}
2.模板文件template/default/member/register.php,找到下面这一整行
(注意看你自己的模板文件,手机版模板对照这个修改就可以了):
  1. <td><input type="text" id="{$this->setting['reginput']['username']}" name="" class="px" value="{echo dhtmlspecialchars($_GET[defaultusername])}" autocomplete="off" size="25" maxlength="15" required /></td>
改法:在 required`后面/> 前面,加上`pattern 和`title`两个属性。改完后是这样:
  1. <td><input type="text" id="{$this->setting['reginput']['username']}" name="" class="px" value="{echo dhtmlspecialchars($_GET[defaultusername])}" autocomplete="off" size="25" maxlength="15" required pattern="^[a-zA-Z0-9_]+$" title="用户名只能包含英文字母、数字和下划线" /></td>
改完后记得:
清模板缓存:后台 → 工具 → 更新缓存。