问题描述
- 关于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
解决方案
Jquery Ajax服务器返回数据问题
jQuery--Ajax提交页面数据
jQuery发送ajax请求,IE有缓存,数据不更新问题
解决方案二:
混淆下就好了,服务器端在解码回来,不要md5,不同语言md5后的内容有些不一样
解决方案三:
如果 提交的值你确定完全一样,没有多余的空格等,那么转换的MD5应该是完全一样的。你这种情况唯一的可能就是数据库字段长度不够,比如你
数据库中密码字段的长度是 20,但是 你密码转换为 MD5后的长度 可能有 30,所以会出现 不同的情况。
时间: 2024-10-21 12:11:00