表面哈哈哈,默念草泥马。

限制Discuz注册用户名必须以指定文字开头

用Discuz几年来,遇到的最头痛的问题不是网站没有流量,而是网站被发帖机盯上了!

虽然Discuz防灌水,防注册机的插件比较多,但是道高一尺魔高一丈,注册机一直在肆虐!注册机折腾的实在没法了,后来就想着能不能通过限制注册用户名必须以指定文字开头来杜绝注册机,而且此举还能统一用户名开头,两全其美!

要实现这个功能还是挺简单的,只需要改两个文件就行了:

\static\js\register.js

\source\class\class_member.php

register.js:

找到

var unlen = username.replace(/[^\x00-\xff]/g, “**”).length;
if(unlen < 3 || unlen > 15) {
errormessage(id, unlen < 3 ? ‘用户名不得小于 3 个字符’ : ‘用户名不得超过 15 个字符’);
return;
}

这句是判断用户名长度,在这个方法后加上:

var re = new RegExp(/^喻/);

if(!re.test(username)) {

errormessage(id,’用户名必须以“喻”开头’);

return;

}

class_member.php

找到

  $usernamelen = dstrlen($username);
if($usernamelen < 3) {
showmessage(‘profile_username_tooshort’);
} elseif($usernamelen > 15) {
showmessage(‘profile_username_toolong’);
}

在后面加上:

$username = addslashes(trim(dstripslashes($username)));

if(!preg_match(“/^喻/”, $username))

showmessage(‘出错啦!用户名只能以“喻”开头。’);