Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从登录php结果中获取json字符串?_Javascript_Php_Jquery_Json_Ajax - Fatal编程技术网

Javascript 如何从登录php结果中获取json字符串?

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="

我应该创建一个简单的网站和一个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="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