0

Androidデバイスのコードは次のとおりです。

public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {


    // Making HTTP request
    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "n");
        }
        is.close();
        json = sb.toString();
        Log.e("JSON", json);
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;
    }

PHPサーバーのコードは次のとおりです。

    $name = $_POST['name'];
    $email= $_POST['email'];
    $password = $_POST['password'];

    $user = $db->storeUser($name, $email, $password);

    if($user){
            echo json_encode($response). "User Stored Successfully";
        } 
        else{
            echo json_encode($response). "Error Occured in Registration";
        }

ここで、storeUserは次のとおりです。

    public function storeUser($name, $email, $password) {

    $result = mysql_query("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES('$uuid', '$name', '$email','$encrypted_password', '$salt', NOW())");

    }

プロセスは機能し、Androidデバイスにメッセージを送り返しますが、詳細はMySQLデータベースに挿入されませんか?

私が欲しいのは、Androidデバイスから詳細を投稿し、サーバー上のMySQLデータベースに挿入することだけです。

なぜこれが引き起こされているのか誰もが知っています、私は何を間違っているのですか?

4

2 に答える 2

1
$name = $_POST['name'];
$name = $_POST['email'];
$name = $_POST['password'];

それは明らかに間違っています。変数を$emailとに変更します$password

また、非推奨になっているmysql_queryの使用を停止します。代わりに、 PDOまたはMySQLiのいずれかを使用してください。

于 2012-09-17T11:43:25.333 に答える
1

上記のコードの何が問題なのかを突き止めました。

Java/Android コードで httppost に渡された URL は、私が使用している API への単純なアドレスとして機能しませんでした。www.domain.com/index.php を試しましたか? とともに '?'。これを追加すると、コードが機能しました。

基本に戻って、投稿を構成するものを調べました

これは、ウィキペディアhttp://en.wikipedia.org/wiki/POST_(HTTP)の POST 記事への参照です。これは、http 投稿を構成するものを理解するのに役立ちました

于 2012-09-17T23:40:26.740 に答える