我来自南美洲的丹尼尔,我真的需要帮助,我一直在寻找这个问题,但我到目前为止没有运气,简单的解释是,我使用ajax验证登录,它有效,然后所有在经过几次测试运行之后突然间,ajax就不起作用了,我必须做一个全新的项目,只是为了让相同的代码再次工作,只是为了再次打破。
这是一个真正基本的登录,我快速构建以测试Ajax代码,就像我说的,真正基本的“验证”工作2到3次然后它就停止工作了,navbar.php还包括工作navbar和bootstrap
<!DOCTYPE html>
<html lang="en">
<head>
<?php include "navbar.php";
?>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="estilos.css">
</head>
<body>
<form id="login" method="post" onsubmit="SubmitHandler()">
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="email" name="email"aria-describedby="emailHelp" placeholder="Enter email">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="password" name="password" placeholder="Password">
</div>
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" class="form-check-input">
Check me out
</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<script type="text/javascript">
function SubmitHandler() {
var email = $('#email').val();
var password = $('#password').val();
$.ajax({
type: "POST",
url:"procesado.php",
data: {'email':email,
'password':password},
cache: false,
success: function(data) {
alert(data);
if(data==true){
alert("Es Correcto/Valid");
}
else{
alert("es Incorrecto/Invalid");
}
}
});
}
</script>
</body>
</html>
以下是一个名为Procesado的php,它只是连接到主要详细信息位于bd.php上的那个数据库,其中包含了on_once,并将第一个输入(电子邮件)和第二个(密码)与数据库进行比较并返回真或假
<?php
include_once 'bd.php';
/**
* Created by PhpStorm.
* User: Phsic
* Date: 26-Sep-17
* Time: 8:47 PM
*/
$email = mysqli_real_escape_string($conn,$_POST['email']);
$password = mysqli_real_escape_string($conn,$_POST['password']);
$url = $_SERVER['HTTP_REFERER'];
$sql = "SELECT * FROM usuario WHERE correo_usuario = '' AND clave_usuario = 'lalass'";
$result = mysqli_query($conn, $sql);
$count = mysqli_num_rows($result);
$row = mysqli_fetch_array($result);
if($count == 1){
$_SESSION['user_session'] = $row['correo_usuario'];
echo true;
}
else {
echo false;
}
exit;
?>
我真的不知道还有什么可以尝试,我已经重写了这段代码,在网上查看了不同的指南,并且在一些用途后它总是会中断,如果有人想知道警报(数据)在第一个代码上返回什么,它只是跳过它完全直接进入警报(“es Incorrecto / Invalid”);在此先感谢并为我破碎的英语和代号不佳的代码感到抱歉,我是一个初学者,我真的很喜欢这一切。
答案 0 :(得分:0)
老实说,你对php的回复应该是一个你可以分析的JSON字符串。
但是,只是为了让它工作,让PHP返回一个字符串。
if($count == 1){
$_SESSION['user_session'] = $row['correo_usuario'];
echo "true";
}
else {
echo "false";
}
然后在ajax上
if(data=="true")
但是你绝对应该尝试使用JSON在ajax调用和服务器端之间进行通信。
如果这不是发布的,那么您的数据库连接可能会失败,从而引发错误。
要调试它,请进一步添加到您的ajax:
error: function(data) {alert(data);}