登陆者更改自己的密码
其实就分两步,第一验证让他验证oldPassword(旧时密码)对了,才能改密码。
//修改密码
function editPwd(){
var username=$('#loginname').text();//获取用户名
//console.log(username);
var oldPwd=$('#oldPwd').val();//旧密码
var newPwd=$('#newPwd').val();//新密码
var checkPwd=$('#checkNewPwd').val();//确认密码
if((oldPwd ==null ||oldPwd =="")||(newPwd ==null ||newPwd =="")||(checkPwd ==null ||checkPwd =="")){
layer.alert('密码不能为空!',{
skin:'layui-layer-molv'//样式类名
,closeBtn:0
});
return;
}
// console.log("old="+oldPwd);
// console.log("new="+newPwd);
// console.log("checknew="+checkPwd);
if(newPwd!=checkPwd){
layer.alert('两次输入的新密码不一致!',{
skin:'layui-layer-molv'//样式类名
,closeBtn:0
});
return;
}
var check=checkPassword(checkPwd);//这是一个我写好的方法用来判断密码格式是否正确。
if(check==false){
layer.alert('密码格式为6-20可带数字、“_”、“.”的字串',{
skin:'layui-layer-molv'//样式类名
,closeBtn:0
});
return;
}
var strJSON ={"oldPassword":oldPwd,"password":newPwd,"username":username};
jQuery.ajax({
url:"./admin/editPassword",
type:"POST",
data:strJSON,
async:false,
success:function(obj){
if(obj.state=="0"){
$('#myModal1').modal('hide');
layer.alert(obj.msg,{
skin:'layui-layer-molv'//样式类名
,closeBtn:0
});
}else{
errorInfo(obj);//这里也是一个封装好的方法
}
},
error:function(){
layer.alert('系统错误',{
skin:'layui-layer-molv'//样式类名
,closeBtn:0
});
},
comlete:function(obj){
if(obj.status==200);
}
});
}
errorInfo()和checkPassword()
//密码验证
//只能输入6-20可带数字、“_”、“.”的字串
function checkPassword(str) {
var re = /^([a-zA-Z0-9]|[._]){6,19}$/
if (re.test(str))
{
return true;
}
else
{
return false;
}
}
//用来插入每个需要判断state状态决定是否重新登录的类里面
function errorInfo(obj){
if(obj.state == "-1") //需要登录
{
layer.alert(obj.msg, {
skin: 'layui-layer-molv' //样式类名
,closeBtn: 0
,shift: 4 //动画类型
});
}
layer.alert(obj.msg, {
skin: 'layui-layer-molv' //样式类名
,closeBtn:0
});
}
Controller
//修改密码
public void editPassword(){
String username=getPara("username");
//得到username的一条数据
List<Admin> list =Admin.dao.queryListByUsername(username);
String str=String.valueOf(list.get(0));
int one=str.indexOf("password:");
int two=str.indexOf(",", one);
String pwd=str.substring(one+9, two);
//截取出真实密码(pwd)
//输入的旧时密码(oldPassword)
String oldPassword=getPara("oldPassword");
if(pwd.equals(oldPassword)){
String password=getPara("password");
int num = Admin.dao.editStaffPwd(password, username);
if(num==0){
this.setAttr("state", "FAILED");
this.setAttr("msg", "修改密码失败!");
this.renderJson();
return;
}else{
this.setAttr("state", "0");
this.setAttr("msg", "修改密码成功!");
this.renderJson();
return;
}
}else{
this.setAttr("state", "FAILED");
this.setAttr("msg", "旧时密码不正确!");
this.renderJson();
return;
}
}
model
public List<Admin> queryListByUsername(String username) {
try{
String sql="select * from admin where username=? ";
return dao.find(sql,username);
}catch(Exception e){
e.printStackTrace();
return null;
}
}
public int editStaffPwd(String password, String username){
// TODO Auto-generated method stub
try {
String updatesql = "UPDATE admin set password=? where username=? ";
int iRet = Db.update(updatesql, password, username);
if (iRet > 0) {
return 1;
} else {
return 0;
}
} catch (Exception ex) {
ex.printStackTrace();
return 0;
}
}