Javascript 登录验证不适用于使用JSON和PHP的HTML
我正在使用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
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来处理密码安全性。谢谢老板。你的帮助很有意义。你修好了