该代码用于简单的登录验证。
向JavaScript返回值时,PHP脚本似乎不能运行,但当没有变量可返回时,脚本运行得很好。那么有什么问题吗,或者我需要添加任何其他东西才能从PHP返回值。
<?php
header('Content-type: application/json; charset=utf-8');
include("config.php");
$formd=array();
//Fetching Values from URL
$username2=$_POST['username1'];
$password2=$_POST['password1'];
$query = mysqli_query($db,"SELECT username FROM login WHERE username = '$username2'");
$result=mysqli_fetch_assoc($query);
$sql=mysqli_query($db,"SELECT password FROM login WHERE username = '$username2'");
$resul=mysqli_fetch_assoc($sql);
$row = mysqli_fetch_array($query,MYSQLI_ASSOC);
$count = mysqli_num_rows($query);
$pass=$resul['password'];
if((password_verify($password2,$pass))and($count==1)) {
echo "ds";
} else {
echo "no";
$formd['no']="Invalid password or username"
}
mysqli_close($db); // Connection Closed
echo json_encode($formd);
exit();
?>JavaScript
<script>
$(document).ready(function(){
$("#submit").click(function(){
var username = $("#username").val();
var password = $("#password").val();
// Returns successful data submission message when the entered information is stored in database.
var dataString = 'username1='+ username + '&password1='+ password;
if(username==''||password=='') {
alert("Please Fill All Fields");
} else {
// AJAX Code To Submit Form.
$.ajax({
type: "POST",
url: "ajaxsubmit.php",
dataType: "json",
data: dataString,
success: function(data){
alert(data.no);
}
});
}
return false;
});
});
</script>发布于 2017-02-28 18:32:21
您的Php代码有2个echo语句
if((password_verify($password2,$pass))and($count==1))
{
echo "ds"; // first
}
else
{
echo "no"; // first
$formd['no']="Invalid password or username"
}
mysqli_close($db); // Connection Closed
echo json_encode($formd); // second这样,您的php脚本将返回格式错误的JSON数据,因此$.ajax()无法处理它。此外,正如其他人指出的那样,请使用开发人员控制台验证您的脚本是否返回了预期的数据。
发布于 2017-02-28 18:45:00
php脚本的if else部分有一个回显语句,然后在if else之外回显数组$formd。这会使JSON响应畸形。此外,您应该使用exit(1),因为在您的代码中没有引发异常。这里是您应该用来使脚本工作的代码片段。
if((password_verify($password2,$pass))and($count==1))
{
echo "ds";
}
else
{
// echo "no"; this is not required
$formd['no']="Invalid password or username"
}
mysqli_close($db); // Connection Closed
echo json_encode($formd);
exit(1);https://stackoverflow.com/questions/42505889
复制相似问题