Javascript 登录验证不适用于使用JSON和PHP的HTML

Javascript 登录验证不适用于使用JSON和PHP的HTML,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我正在使用JSON和PHP在HTML上制作一个登录表单,但是所有关于成功的if语句都不起作用,但是beforeSend和error都起作用。你能帮我检查一下我的错误吗 我不知道成功函数有什么问题。警报没有弹出。例如,response.success==true应弹出“您已成功登录…” <script> $(document).ready(function(){ $('#loginForm').on('submit',function(e){ var myFo

我正在使用JSON和PHP在HTML上制作一个登录表单,但是所有关于成功的
if
语句都不起作用,但是
beforeSend
error
都起作用。你能帮我检查一下我的错误吗

我不知道成功函数有什么问题。警报没有弹出。例如,
response.success==true
应弹出“您已成功登录…”

<script>
$(document).ready(function(){
    $('#loginForm').on('submit',function(e){

        var myForm = new FormData($(this)[0]);

        $.ajax({
            type:'POST',
            url: 'connections/login.php',
            data : new FormData($(this)[0]),
            cache: false,
            contentType:false,
            processData: false,
            beforeSend: function(){
                $("div#divLoading").show();
            },
            success: function(response){
                $("div#divLoading").hide();
                console.log(response);
                if(response.success == true)
                {
                    alert(' You are successfully logged in... ')
                }

                else if( response.success == false ){
                    alert('please enter a correct email & password');
                }
                else{
                    if(response.matric){
                        alert('email is wrong');
                    }
                    if(response.password){
                        alert('password is wrong');
                    }
                }
            },
            error: function(data){
                alert('error');
                $("div#divLoading").hide();
            }
        });
    return false;
    });
});
</script>

$(文档).ready(函数(){
$('#loginForm')。在('submit',函数(e)上{
var myForm=new FormData($(this)[0]);
$.ajax({
类型:'POST',
url:'connections/login.php',
数据:新FormData($(this)[0]),
cache:false,
contentType:false,
processData:false,
beforeSend:function(){
$(“div#divLoading”).show();
},
成功:功能(响应){
$(“div#divload”).hide();
控制台日志(响应);
if(response.success==true)
{
警报('您已成功登录…')
}
else if(response.success==false){
警报(“请输入正确的电子邮件和密码”);
}
否则{
if(响应矩阵){
警报(“电子邮件错误”);
}
if(响应密码){
警报(“密码错误”);
}
}
},
错误:函数(数据){
警报(“错误”);
$(“div#divload”).hide();
}
});
返回false;
});
});
以下是我的PHP:

<?php
require_once('connect.php');

session_start();

header('Content-Type: application/json');
if (!empty($_POST['matric']))
{
$matric=$_POST['matric'];
$password=$_POST['password'];



$pass= $dbh->prepare("SELECT * FROM users WHERE matric=:matric AND password=:password");
$pass->bindParam(':matric', $matric);
$pass->bindParam(':password', $password);
$pass->execute();
if($pass->fetch(PDO::FETCH_NUM) > 0)
{
    $_SESSION['matric']=$matric;
    $response = array(
    'success' => true,
    'message' => 'Login successful');
}
else
{
    $response = array(
    'success' => false,
    'message' => 'Login fail');
}

}

echo json_encode($response);
echo json_encode($_POST);

?>

您有

echo json_encode($response);
echo json_encode($_POST);
这将发布损坏的JSON。e、 你的产出将是

{"success":true,"message":"Login successful"}Array
                                             ^^^^^^---corruption
由于您的JSON已损坏,因此无法正确解码,
response
将与您想象的不一样。

删除此行:

echo json_encode($_POST);

您是否尝试过检查响应的实际值是多少?当您执行
console.log(response)
时会显示什么?您真的应该使用PHP来处理密码安全性。谢谢老板。你的帮助很有意义。你修好了