本帖最后由 qingwu0712 于 2011-12-24 12:28 编辑
解决完了用户名问题,发现密码更加纠结,discuz本身没做限制,所以在没有源码参考的情况下,我蛋疼了,我在JS中做了判断,可以提示错误信息,但是一样可以注册成功,请问该在哪里进行修改?
-----------------------2011-12-24
现在我在register.js下对checkpassword做了如下修改,用来做页面的提示,但是我想知道的是,点击提交后如果有错误会有弹出层提示有错误,那个弹出层是在哪个文件下控制的,求位置
------------------------没人鸟我,表示自己搞定了
1.修改register.js 250行function checkpassword(id1, id2) {
if(!$(id1).value && !$(id2).value) {
return;
}
var Password=trim($(id1).value);
var len = Password.replace(/[^\x00-\xff]/g, "**").length;
if(len < 4 || len > 16) {
errormessage(id1, len < 4 ? '密码小于 4 个字符' : '密码超过 16 个字符');
}
else if(!/^(?!_)\w+$/.test(Password)) {
errormessage(id1, '密码包含敏感字符');
}
errormessage(id2);
if($(id1).value != $(id2).value) {
errormessage(id2, '两次输入的密码不一致');
} else {
if(len < 4 || len > 16) {
errormessage(id2, len < 4 ? '密码小于 4 个字符' : '密码超过 16 个字符');
return;
}
if(!/^(?!_)\w+$/.test(Password)) {
errormessage(id2, '密码包含敏感字符');
return;
}
errormessage(id2, 'succeed');
}
}
2.修改source/class/class_member.php 465行
if(empty($this->setting['ignorepassword'])) {
if($_G['gp_password'] !== $_G['gp_password2']) {
showmessage('profile_passwd_notmatch');
}
//by-2012-12-24
$passwdlen=dstrlen($_G['gp_password']);
if($passwdlen > 16 || $passwdlen < 4 || !preg_match("/\w+/is", $_G['gp_password']) || $_G['gp_password'] != addslashes($_G['gp_password'])) {
showmessage('profile_passwd_illegal');
}
//by-2012-12-24
/*if(!$_G['gp_password'] || $_G['gp_password'] != addslashes($_G['gp_password'])) {
showmessage('profile_passwd_illegal');
}discuz源码*/
$password = $_G['gp_password'];
} else {
$password = md5(random(10));
}