q84375105
小齐齐齐齐齐齐
2015-11-19 15:54
采纳率: 27.8%
浏览 2.3k

关于jQuery的.ajax发送的数据问题

$.ajax({
url:"__URL__/passEdit",
type:"POST",
data: "password='"+pass+"'&id='"+id+"'",
dataType:"text",
async:true,
success:function(res){
if(res=="Y"){
alert(res);
//密码验证成功
$("#pass").parents('tr').hide;
}else{
//密码验证失败
alert(res);
$("原密码不正确!").insertAfter("#pass").css("color","red");

                                    }
                                }

                            });

我把password和id两个参数发送到制定的php文件中,两个值都发送成功了,password为admin,经过md5加密,和数据库中的密码作比较,查看是否相同,为什么同样是admin,md5之后就不相同了啊?我打印出来传过去的参数加密之后的值,和我数据库中的加密之后的admin不相同,求大神解答,今晚又不能睡了。。。
这个是php文件的代码
public function passEdit(){
$id = $_REQUEST['id'];
$pass = $_REQUEST['password
$pwd = M('users')->field('password')->find($id
if($pwd['password'] == md5($pass)){
//密码正确
die('Y');
}else{
//密码错误
die('N');
}

}   
一直返回下面的N
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • showbo

    混淆下就好了,服务器端在解码回来,不要md5,不同语言md5后的内容有些不一样

    点赞 评论
  • a8761087
    GrowingDarker 2015-11-26 09:23

    如果 提交的值你确定完全一样,没有多余的空格等,那么转换的MD5应该是完全一样的。你这种情况唯一的可能就是数据库字段长度不够,比如你
    数据库中密码字段的长度是 20,但是 你密码转换为 MD5后的长度 可能有 30,所以会出现 不同的情况。

    点赞 评论

相关推荐