php 账号与密码比对,登录密码比对疑问

数据库保存字段是md5(密码),表单接收处理的密码是md5(密码+后缀),这两个判断返回的逻辑值是true吗?为什么我昨晚试了,返回账户密码不正确,但是ajax返回值是ok,如果全部乱输入,则ajax返回的是null。如果密码不匹配为什么ajax返回ok?如果匹配为什么返回密码不正确?问题出在哪里?

1.IndexController.class.php:

display();

}

public function checkUserName(){

if(!IS_AJAX){

$data=array('errMsg' => '非法访问方式');

}

$userName=I('username','','htmlspecialchars');

$userPass=I('userpass','','htmlspecialchars');

$userInfo=D("Stuser")->getUserInfo($userName);

if($userInfo['userpass']!=handleMd5Pass($userPass)){

//echo $userInfo['userpass']."

";

//echo handleMd5Pass($userPass);

echo "用户名或密码不正确";

//var_dump(handleMd5Pass($userPass));

}

if($userInfo){

//$userInfo->where(array('id' => $userInfo['id']))->save($errMsg);

session('userId',$userInfo['id']);

$data=array(

'info' => 'ok',

'callback' => U('/stfjzd-13/index.php/Home/Index/index')

);

}

$this->ajaxReturn($data);

}

}

2.StuserModel.class.php

DB=M("Stuser");

}

//数据库中检索用户数据,find()检索一条->Index

public function getUserInfo($userName){

//$res=$this->DB->field('username','userpass')->where('username="'.$userName.'"')->find();

$userInfo=$this->DB->where('username="'.$userName.'"')->find();

echo $this->DB->getLastSql();

return $userInfo;

}

}

?>

3.Login.js

$('.search_sub').click(function(event){

event.preventDefault();

var userName=$("#username").val();

var userPass=$("#userpass").val();

if(userPass=="" || userName==""){

alert("登陆名称与密码不能为空");

$("#username").focus();

return false;

}else{

var url="/stfjzd-13/index.php/Home/Index/checkUserName";

//var url="{U('/stfjzd-13/index.php/Home/Index/checkUserName')}";

$.post(url,{username:userName,userpass:userPass},function(msg){

if(msg.errMsg=="ok"){

window.location.href=msg.callback;

}else{

alert(msg.errMsg);

}

},"JSON")

}

})

回复内容:

数据库保存字段是md5(密码),表单接收处理的密码是md5(密码+后缀),这两个判断返回的逻辑值是true吗?为什么我昨晚试了,返回账户密码不正确,但是ajax返回值是ok,如果全部乱输入,则ajax返回的是null。如果密码不匹配为什么ajax返回ok?如果匹配为什么返回密码不正确?问题出在哪里?

1.IndexController.class.php:

display();

}

public function checkUserName(){

if(!IS_AJAX){

$data=array('errMsg' => '非法访问方式');

}

$userName=I('username','','htmlspecialchars');

$userPass=I('userpass','','htmlspecialchars');

$userInfo=D("Stuser")->getUserInfo($userName);

if($userInfo['userpass']!=handleMd5Pass($userPass)){

//echo $userInfo['userpass']."

";

//echo handleMd5Pass($userPass);

echo "用户名或密码不正确";

//var_dump(handleMd5Pass($userPass));

}

if($userInfo){

//$userInfo->where(array('id' => $userInfo['id']))->save($errMsg);

session('userId',$userInfo['id']);

$data=array(

'info' => 'ok',

'callback' => U('/stfjzd-13/index.php/Home/Index/index')

);

}

$this->ajaxReturn($data);

}

}

2.StuserModel.class.php

DB=M("Stuser");

}

//数据库中检索用户数据,find()检索一条->Index

public function getUserInfo($userName){

//$res=$this->DB->field('username','userpass')->where('username="'.$userName.'"')->find();

$userInfo=$this->DB->where('username="'.$userName.'"')->find();

echo $this->DB->getLastSql();

return $userInfo;

}

}

?>

3.Login.js

$('.search_sub').click(function(event){

event.preventDefault();

var userName=$("#username").val();

var userPass=$("#userpass").val();

if(userPass=="" || userName==""){

alert("登陆名称与密码不能为空");

$("#username").focus();

return false;

}else{

var url="/stfjzd-13/index.php/Home/Index/checkUserName";

//var url="{U('/stfjzd-13/index.php/Home/Index/checkUserName')}";

$.post(url,{username:userName,userpass:userPass},function(msg){

if(msg.errMsg=="ok"){

window.location.href=msg.callback;

}else{

alert(msg.errMsg);

}

},"JSON")

}

})

if($userInfo['userpass']!=handleMd5Pass($userPass)){

//此处只echo了错误,但是没有返回到前端。

echo "用户名或密码不正确";

//var_dump(handleMd5Pass($userPass));

}

if($userInfo){

//你的代码运行到这里,用户名对,所以查出了userInfo,所以返回了ok。正确应该在密码验证错误的时候就返回给前端,不再往后运行

session('userId',$userInfo['id']);

$data=array(

'info' => 'ok',

'callback' => U('/stfjzd-13/index.php/Home/Index/index')

);

}

$this->ajaxReturn($data);

在注释中

echo "用户名或密码不正确";

这里 return

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值