在PHP中获取对Android应用程序StringReqeust的引用的正确响应时遇到问题

在PHP中获取对Android应用程序StringReqeust的引用的正确响应时遇到问题,php,android,mysql,Php,Android,Mysql,我试图在用户名和密码匹配或不匹配时获得响应,这样我就可以在我的Android应用程序中引用该消息,并使用字符串确认该消息是否成功并登录用户。我很难得到正确的信息。这是我的密码: <?php if($_SERVER['REQUEST_METHOD'] == 'POST'){ require_once('connect.inc.php'); $username = $_POST["username"]; $password = $_POST["password"]

我试图在用户名和密码匹配或不匹配时获得响应,这样我就可以在我的Android应用程序中引用该消息,并使用字符串确认该消息是否成功并登录用户。我很难得到正确的信息。这是我的密码:

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){

    require_once('connect.inc.php');

    $username = $_POST["username"];
    $password = $_POST["password"];

    //avoid sql injection by setting to ?
    $sql = mysqli_prepare($conn, "SELECT * FROM USER WHERE username = ? AND password = ?");
    //bind username and password == to username and password
    mysqli_stmt_bind_param($sql, "ss", $username, $password);
    mysqli_stmt_execute($sql);
    mysqli_stmt_store_result($sql);
    mysqli_stmt_bind_result($sql, $fname, $lname, $username, $password, $email);

    $user = array();

    //fetch data to array of user
    while(mysqli_stmt_fetch($sql)){
        $user['fname'] = $fname;
        $user['lname'] = $lname;
        $user['username'] = $username;
        $user['password'] = $password;
        $user['email'] = $email;
    }

    //get response if username and password match
    if(!$sql){
        echo "not connected";
    }else{
        echo "connected";
    } 

    mysqli_stmt_close($sql);
    mysqli_close($conn);
}
?>

无论发生什么,我都会得到“连接”的响应。

根据:

mysqli\u prepare()

因此,您的
$sql
变量是一个句柄,如果prepare语句失败,则只返回
FALSE
,这就是您总是看到“connected”的原因

如果您想检查是否有匹配项,我会使用
num_results
()检查您是否有一个结果,因为这表示直接匹配

作为补充说明,您不应该将密码存储在纯文本中。您应该在存储密码之前对密码进行散列,并比较散列后的密码

PHP站点有一些

根据:

mysqli\u prepare()

因此,您的
$sql
变量是一个句柄,如果prepare语句失败,则只返回
FALSE
,这就是您总是看到“connected”的原因

如果您想检查是否有匹配项,我会使用
num_results
()检查您是否有一个结果,因为这表示直接匹配

作为补充说明,您不应该将密码存储在纯文本中。您应该在存储密码之前对密码进行散列,并比较散列后的密码


PHP站点有一些

好的,谢谢。我还尝试了一个简单的
if(mysqli_query($conn,$sql)){echo'成功注册';}else{'notconnected';}
但是$sql是一个对象,但它需要一个字符串。有没有简单的方法将其转换为字符串?
$sql
在本例中是mysqli实例
mysql\u query()
需要一个连接句柄
$conn
,以及一个字符串查询,例如
SELECT*FROM USER
。好的,谢谢。我还尝试了一个简单的
if(mysqli_query($conn,$sql)){echo'成功注册';}else{'notconnected';}
但是$sql是一个对象,但它需要一个字符串。有没有简单的方法将其转换为字符串?
$sql
在本例中是mysqli实例
mysql\u query()
需要一个连接句柄
$conn
,以及一个字符串查询,如
SELECT*FROM USER