Php Android Http登录帖子

Php Android Http登录帖子,php,android,http,post,login,Php,Android,Http,Post,Login,我正在尝试通过安卓应用程序登录我的网站。 由于某种原因,它总是无法登录 以下是我的应用程序登录方法: private void login() { //this method returns false HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://mysite.com/mobileauth.php")

我正在尝试通过安卓应用程序登录我的网站。 由于某种原因,它总是无法登录

以下是我的应用程序登录方法:


private void login() {

         //this method returns false
         HttpClient httpclient = new DefaultHttpClient();  
         HttpPost httppost = new HttpPost("http://mysite.com/mobileauth.php");
         JSONObject jsonObject = new JSONObject();

           try {  

               List nameValuePairs = new ArrayList(2);  
               jsonObject.put("username", "user1");
               jsonObject.put("password", "12345");

               nameValuePairs.add(new BasicNameValuePair("jsonString", jsonObject.toString()));               

               httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
               HttpResponse response = httpclient.execute(httppost);



               String responseStr = org.apache.http.util.EntityUtils.toString(response.getEntity());
               statusText.setText(responseStr);

           } catch (ClientProtocolException e) {  
               statusText.setText(e.toString());
           } catch (IOException e) {   
               statusText.setText(e.toString());
           } catch (JSONException e) {
               statusText.setText(e.toString());
           }
}
我为移动设备登录创建了一个特定的文件,比如Android

这是我在服务器上的身份验证文件:


$host="*"; // Host name 
$username="*"; // Mysql username 
$password="*"; // Mysql password 
$tbl_name="users"; // Table name
$db_name="database";

$link = mysql_connect($host, $username, $password) or die("Connection Error"); 
$db = mysql_select_db("$db_name")or die("Connection Error");

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

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' AND paswd='$mypassword'";
$result = mysql_query($sql);

$count = mysql_num_rows($result);

if ($count == 1) {
    $timeUpdateQuesry="UPDATE users SET lastLogin=Now() WHERE username='$myusername' AND paswd='$mypassword'";
    mysql_query($timeUpdateQuesry);

    echo("true");
} else {
    //happend without leaving page
    echo ("false");
}

由于某些原因,我的状态文本视图中总是出现
false

我会感谢你的帮助


谢谢,

您发布了一个JSON对象,但试图解析请求变量(即$\u GET/$\u POST/$\u COKIE变量)

对Java不太确定,但我怀疑它将序列化JSON对象分配给名为jsonString的post变量。(您可以编写一个简单的PHP脚本来转储所有$\u POST、$\u GET和$HTTP\u RAW\u POST\u数据,从而轻松地进行检查)

在这种情况下,要获取php中的值:

$jsonString=json_decode($_POST['jsonString']);
$myusername = $jsonString['username']; 
$mypassword = $jsonString['password'];

从android代码中删除所有JSON。您在PHP端没有将其作为JSON接收,因此这可能是一个根本原因。NameValuePairs应该可以正常工作。

感谢您的回复,但我仍然会得到false,否则,如果我试图通过web浏览器访问页面,我也会得到false