Java 无法进行身份验证
此时,我希望用户输入他/她的用户名和密码(数据是mock@MySQL) 但它不起作用 My file.php:Java 无法进行身份验证,java,php,android,json,Java,Php,Android,Json,此时,我希望用户输入他/她的用户名和密码(数据是mock@MySQL) 但它不起作用 My file.php: <?php include("ConnectDatabase.php"); $Username = $_POST['Username']; $Password = $_POST['Password']; $q = mysql_query("SELECT Username, Password FROM Users
<?php
include("ConnectDatabase.php");
$Username = $_POST['Username'];
$Password = $_POST['Password'];
$q = mysql_query("SELECT Username, Password FROM Users
where Username = '".$Username."' and
Password = '".$Password."'");
if(mysql_num_rows($q) > 0){
print json_encode($q);
}else{
print "1";
}
mysql_close();
?>
您忘记的第一件事是传入变量:
$Username = $_POST['Username'];
你的第二个问题可能是:
if (mysql_num_rows($q) > 0) {
print json_encode($q);
$q
变量是一个mysql\result句柄。它不能用JSON表示。您可能想使用:
print json_encode(mysql_fetch_assoc($q));
因此,您将至少获得一个带有用户名/密码的结果数组/对象。如果您只需发送另一个简单的数字结果-打印“2”代码>或者什么的
您是否已经检查过是否运行PHP5.2或更高版本,因此这肯定是可用的?问题是什么?还有,你有什么错误吗?你的应用程序崩溃了吗?如果是这样,你能粘贴logcat跟踪吗?我只是不知道为什么它不起作用。我没有收到任何错误。请查看PDO准备的语句,因为您的代码不安全=>where Username='“$Username.”和Password='“$Password.”");代码>表示两个主要的安全缺陷:SQL注入和存储的纯文本密码。请仔细阅读。这些问题比您试图处理的JSON问题更严重。
print json_encode(mysql_fetch_assoc($q));