html怎么限制密码字母个数字,怎样限制密码长度,并且只能为字母数字及下划线组成?...

博主在论坛遇到密码设置问题,原Discuz系统未对密码长度和格式做限制。通过JS和PHP两方面进行了修改,增强了密码验证,包括长度检查、敏感字符检测及两次输入密码的一致性验证。在JS中定义了checkpassword函数,并在PHP的class_member.php文件中增加了密码合法性的校验,以防止无效注册。最终,博主独立解决了问题,实现了注册时的错误提示功能。
摘要由CSDN通过智能技术生成

943465bc9b08547e087cce7b4d49def5.png本帖最后由 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));

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值