我已经实现了一个带有AJAX请求的登录页面,该页面根据来自php页面loginrequest.php
的响应重定向用户
$.ajax ({
type: "POST",
url: "ajax/loginrequest.php",
data: {
username: username,
password:pass
},
dataType: "text",
success: function(html){
console.log(html); // Prints 'login' or 'fail'
if(html == 'login'){
console.log("Yes"); //Never Printed
window.location.href = 'index.php';
}
else if(html == 'fail'){
alert("Incorrect Username and/or Password");
}
}
});
这是回复AJAX函数的loginrequest.php
或login
的{{1}}代码
fail
我的成功函数中的if($count == 1){
$bool = password_verify($mypassword, $row[1]);
if($bool == true){
$_SESSION['user'] = $myusername;
$_SESSION['division'] = $row[2];
$return = 'login';
}
else{
$return = 'fail';
}
}
else{
$return = 'fail';
}
echo $return;
根据凭据打印登录或失败,但由于某种原因,if语句永远不会计算为true。我的页面永远不会重定向,无论如何都不会显示警报。我刚刚将这些文件上传到Web服务器,它们在WAMP上工作正常,但由于某种原因它不再工作了。我在console.log
中尝试了json_encode()
,但它仍然不起作用。我的数据库调用没有任何问题,因为它根据凭据返回登录或失败,它只是成功函数中的if语句。
我在这里做错了什么?
答案 0 :(得分:1)
很可能你有一个由PHP回应的迷路空白
尝试
success: function(html){
console.log(html); // Prints 'login' or 'fail'
console.log(html.length); // Is it 5 and 4 respectively?
html = $.trim(html); // if a space is the issue then this should fix it
if(html == 'login'){
console.log("Yes"); //Never Printed
window.location.href = 'index.php';
}
else if(html == 'fail'){
alert("Incorrect Username and/or Password");
}
}
答案 1 :(得分:-1)
使用像1/0这样的真/假值....更可靠
get("/login", (req, res) -> {
req.attribute("a", "message");
req.session().attribute("message", "");
return new ModelAndView(null, "");
}, new PebbleTemplateEngine());