最近在折腾DZ论坛,为了实现只允许注册字母、数字、下划线组成的用户名这个功能,特将笔记记录在博客里,以备日后查验~
【第一步】
在网站/source/class/目录下的class_member.php文件中
找到下面代码:
if($bbrules && $bbrulehash != $_POST['agreebbrule']) {
showmessage('register_rules_agree');
}
在这段代码后添加如下代码并保存
if(!preg_match("/^[\-\_a-zA-Z0-9]+$/",$username)){
showmessage('register_disagree');
}
【第二步】
在网站/source/language/目录下的lang_message.php文件中添加如下代码并保存
'register_disagree' => '用户名只能为数字或英文或下划线',
【第三步】
在网站/source/module/forum/Forum_ajax.php 文件中
找到以下代码
elseif($ucresult == -3) {
if($db->result_first("SELECT uid FROM {$tablepre}members WHERE username='$username'")) {
showmessage('register_check_found', '', 1);
} else {
showmessage('register_activation', '', 1);
}
}
在最后一个关闭大括号后面追加以下代码
elseif(!preg_match("/^[\-\_a-zA-Z0-9]+$/",$username)){
showmessage('用户名只能为数字或英文或下划线', '', 1);
exit;
}