吾爱尚玩资源基地
标题:
Discuz如何修改允许使用的用户名最大长度{最大值15}
[打印本页]
作者:
admin
时间:
2017-3-13 23:16
标题:
Discuz如何修改允许使用的用户名最大长度{最大值15}
如何修改允许使用的用户名最大长度{最大值15}基于 Discuz!X1.5
修改前提:
mysql 从4.1 引入字符集的定义以来在对字符进行存储的时候,如果是定义的一个字段是 char(15) 那么不管是英文或者是任何编码的中文,都是可以存入15个的。但是在 mysql 4.0 中 char(15) 字段只能存储 15个字节的英文或数字,7.5个 GBK 汉字,5 个 UTF8 编码的汉字。我们的修改就是基于 mysql 4.1 以上版本的。这样能够只修改程序,而不修改数据库,把修改的成本降到最低。由于标准数据库中用户名的字段长度为 15 那么我们修改的上限也就是 15 个汉字的用户名,如果再多的话,入库的时候就要报错了。一般来说 15 个汉字的用户名也足够用了。
修改方法:
注:此修改方法针修改为最大上限,官方不建议大家修改为这么大,会造成风格问题,一下代码中的 30 推荐替换为 24。也就是 12 个 GBK 汉字。
1.前台 JS 的修改方法
打开 template\default\member\register.htm 文件:
找到:
if(unlen < 3 || unlen > 15) {
修改为
if(unlen < 3 || unlen > 30) {
保存
2. Discuz! php 代码修改
打开 source\module\forum\forum_ajax.php
找到:
} elseif($usernamelen > 15) {
修改为:
} elseif($usernamelen > 30) {
打开 source\module\member\member_register.php
找到:
} elseif($usernamelen > 15) {
修改为:
} elseif($usernamelen > 30) {
3.UCenter client php 代码修改
打开 uc_client\model\user.php
找到
if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username)) {
修改为
if($len > 30 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username)) {
4.UCenter uc_server php 代码修改
比如当前我使用的 UCenter 在 uc_server 目录中,修改正在使用的 UCenter 的 uc_server\model\user.php 文件
找到
if($len > 15 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username)) {
修改为:
if($len > 30 || $len < 3 || preg_match("/\s+|^c:\\con\\con|[%,\*\"\s\<\>\&]|$guestexp/is", $username)) {
欢迎光临 吾爱尚玩资源基地 (http://bbs.523play.com/)
Powered by Discuz! X3.4