2011-06-27 17 views
0

私はAndroidアプリケーションを使用して自分のウェブサイトにログインしようとしています。 何らかの理由で、常にログインに失敗します。Android Http Login Post

ここに私のログイン方法は、アプリのためだ:


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"); 
} 

私はいつも自分のステータスのTextViewにfalseを取得するいくつかの理由が。

私は任意の助けに

おかげで、

答えて

0

からすべてのJSONを削除する:PHPの値を取得する

その場合には(あなたは簡単に$ _POST、$ _GETと$ HTTP_RAW_POST_DATAの全てをダンプする簡単なPHPスクリプトを記述することによってチェックすることができ)あなたのアンドロイドコード。あなたはPHP側でJSONとして受け取っていないので、おそらく根本的な原因です。 NameValuePairsは正常に動作するはずです。

1

あなたは、JSONオブジェクトを掲示するが、REQUEST変数を(すなわち、$ _GET/$ _ POST/$ _ COKIE変数)を解析しようとしているに感謝します。

Javaについてはあまり詳しくはわかりませんが、シリアル化されたJSONオブジェクトをjsonStringという名前のポスト変数に割り当てることが考えられます。

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

ご返信いただきありがとうございますが、私はまだウェブブラウザでページにアクセスしようとすると偽になります –