Javascript 如何从登录php结果中获取json字符串?
我应该创建一个简单的网站和一个android应用程序,从同一个数据库中获取数据。我在android中没有问题,但在html中我无法检查json字符串。 如何从php文件获取json结果以登录 在html中Javascript 如何从登录php结果中获取json字符串?,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,我应该创建一个简单的网站和一个android应用程序,从同一个数据库中获取数据。我在android中没有问题,但在html中我无法检查json字符串。 如何从php文件获取json结果以登录 在html中 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <form action="login_user.php" method="
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<form action="login_user.php" method="post">
<input type="text" name="username" placeholder="Enter your
username" id="username">
<input type="password" name="password" placeholder="Enter your
password" id="password">
<input type="button" name="login" value="Login" id="login">
</form>
<script>
$(document).ready(function() {
$('#login').click(function(){
var username = $('#username').val();
var password = $('password').val();
$.ajax({
url: "login_user.php",
method: "POST",
response: {username:username, password:password},
dataType: "JSON",
success: function(response) {
// if response is true open 2nd page html
// else error message
}
});
});
});
</script>
$(文档).ready(函数(){
$('#login')。单击(函数(){
var username=$('#username').val();
var password=$('password').val();
$.ajax({
url:“login_user.php”,
方法:“张贴”,
响应:{用户名:用户名,密码:密码},
数据类型:“JSON”,
成功:功能(响应){
//如果响应为真,请打开第二页html
//else错误消息
}
});
});
});
在php文件中
<?php
$username = $_POST['username'];
$password = $_POST['password'];
require("connection.php");
if (!$conn) {
// Esito negativo connessione
$response["response"] = false;
$response["log"] = "Error connecting to database"; // Messaggio che verrà visualizzato
echo json_encode($response); // Restituisce la stringa Json
} else {
$query = "select * from users where username = '$username' and password = '$password'";
$result = mysqli_query($conn, $query);
$row = mysqli_num_rows($result);
if ($row > 0) {
// Esito negativo connessione
$response["response"] = true;
$response["user"] = mysqli_fetch_assoc($result);
echo json_encode($response);
} else {
$response["response"] = false;
$response["log"] = "User not found!";
echo json_encode($response);
}
mysqli_close($conn);
}
?>
我认为您的AJAX调用应该如下所示:
$.ajax({
url: "login_user.php",
method: "POST",
response: {"username":username, "password":password},
dataType: "JSON",
success: function(response) {
// if response is true open 2nd page html
// else error message
}
});
您的参数名称必须用引号括起来。首先,您忘记了$('password')
.2nd;为此使用准备好的语句,不要存储纯文本密码;在你开始使用它之前,使用密码\u hash()
;如果你愿意的话。否则,有一天你可能会发现你的数据库被破坏/删除。我认为这是一个印刷错误。@FunkFortyNiner是的,我知道我必须加密我的密码,这只是一个测试。但是超过美元(“#密码”)怎么了?为什么不起作用?您能否更正代码,使其能够独立理解和继续?提前感谢在您的$.ajax
调用中,我相信字段名应该是data
而不是response
。