0
<?php

include("db_config.php");

$myusername = $_GET['username'];
$mypassword = $_GET['password'];



$sql="SELECT id FROM tablename WHERE username='$myusername' and password='$mypassword'";

echo $sql;

$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$active=$row['active'];

$count=mysql_num_rows($result);


 // If result matched $myusername and $mypassword, table row must be 1 row
if($count==1)
{
 echo "<strong> <font size='18'>Login Success</font></strong>";
 }
 else 
 {
echo "<strong> <font size='18'>Login Failed</font></strong>";
}

?>

我尝试了成功的响应数组..但是在java文件中我收到它..显示为空..我正在使用这条线来接收成功

  success=json.getInt(TAG_SUCCESS);

我还在我的 JSON 解析器类中使用它来检查服务器是否返回成功。

  if (response.getStatusLine().getStatusCode() == 200) 

而且登录也给出了登录失败..虽然我输入了数据库中存在的用户名

任何人都可以帮助我吗?

4

2 回答 2

0

不确定您使用的是哪个库,但在 HTML 文本“登录成功/失败”上使用方法“getInt()”看起来非常错误。

使用“json”。HTML 数据上的方法看起来也很错误。

因此,让您的 php 发出有效的 JSON,并让您的 Java 从 hte JSON 中提取登录成功或失败文本。

于 2013-04-18T08:37:09.737 回答
0

如果我错了,请纠正我,但您的 php 没有返回有效的 JSON,而是返回 HTML 代码。自然,当您尝试将其解析为 JSON 时,您会得到null. 如果您的 PHP 更改为:

if($count==1) {
    $result['login'] == 'success';
}
else {
    $result['login'] == 'failed';
}
echo json_encode($result);

那么你可以在你的java中解析它并使用类似的东西:

if("success".equals(json.getString("login")) {
    //login successful
}

这不是实现这一目标的唯一方法,但它应该可以解决问题。

于 2013-04-18T08:37:36.757 回答