0

問題が発生しました... ユーザー登録時にデバイスの UID をデータベースに保存しようとしています... logcat に次のエラーが表示されました:

10-18 17:17:08.141: E/JSON(1712): <br />
10-18 17:17:08.141: E/JSON(1712): <b>Warning</b>:  Missing argument 4 for DB_Functions::storeUser(), called in /home/matbest1/public_html/android_login_api/index.php on line 64 and defined in <b>/home/matbest1/public_html/android_login_api/include/DB_Functions.php</b> on line <b>25</b><br />
10-18 17:17:08.141: E/JSON(1712): {"tag":"register","success":0,"error":1,"error_msg":"Error occured in Registartion"}
10-18 17:17:08.151: E/JSON Parser(1712): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
10-18 17:17:08.381: D/dalvikvm(1712): GC_CONCURRENT freed 296K, 5% free 9394K/9799K, paused 2ms+4ms

データベースに udid を保存しようとしています...レジスタ アクティビティは次のとおりです。

public JSONObject registerUser(String name, String email, String password, String uid){
    // Building Parameters
    List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("tag", register_tag));
    params.add(new BasicNameValuePair("name", name));
    params.add(new BasicNameValuePair("email", email));
    params.add(new BasicNameValuePair("password", password));
    params.add(new BasicNameValuePair("uid", uid));

    // getting JSON Object
    JSONObject json = jsonParser.getJSONFromUrl(registerURL, params);
    // return json
    return json;
}

登録:

UserFunctions userFunction = new UserFunctions();
            JSONObject json = userFunction.registerUser(name, email, password, uid);

PHPコード:

 public function storeUser($name, $email, $password, $uid) {
    $uuid = $uid;
    $hash = $this->hashSSHA($password);
    $encrypted_password = $hash["encrypted"]; // encrypted password
    $salt = $hash["salt"]; // salt
    $result = mysql_query("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES('$uuid', '$name', '$email', '$encrypted_password', '$salt', NOW())");
    // check for successful store
    if ($result) {
        // get user details 
        $uid = mysql_insert_id(); // last inserted id
        $result = mysql_query("SELECT * FROM users WHERE uid = $uid");
        // return user details
        return mysql_fetch_array($result);
    } else {
        return false;
    }
}

&

  if ($tag == 'register') {
        // Request type is Register new user
        $name = $_POST['name'];
        $email = $_POST['email'];
        $password = $_POST['password'];
        $uid = $_POST['uid'];

        // check if user is already existed
        if ($db->isUserExisted($email)) {
            // user is already existed - error response
            $response["error"] = 2;
            $response["error_msg"] = "User already existed";
            echo json_encode($response);
        } else {
            // store user
            $user = $db->storeUser($name, $email, $password);
            if ($user) {
                // user stored successfully
                $response["success"] = 1;
                $response["uid"] = $user["unique_id"];
                $response["user"]["name"] = $user["name"];
                $response["user"]["email"] = $user["email"];
                $response["user"]["created_at"] = $user["created_at"];
                $response["user"]["updated_at"] = $user["updated_at"];
                echo json_encode($response);
            } else {
                // user failed to store
                $response["error"] = 1;
                $response["error_msg"] = "Error occured in Registartion";
                echo json_encode($response);
            }
        }
    } else {
        echo "Invalid Request";
    }
} else {
    echo "Access Denied";
}

誰かが私を助けることができますか?私はこれが初めてです...どうもありがとう。

4

1 に答える 1

1

サーバーの応答には、HTML で表示される PHP エラーが含まれています。

したがって、AndroidアプリがJSONを解析できないのは正常です..

まず、Android アプリが必要なすべての情報 (PHP が待機する 4 つのパラメーター) を送信していることを確認する必要があります。これは、PHP のエラー クリアリがパラメーター #4 : $uid を欠いていることを示しているためです。

PHP ファイルの先頭でa を試して、 print_r($_REQUEST); PHP がすべてのパラメーターを受け取るかどうかを確認してください。そうでない場合: Android アプリケーションに問題があります (uid は文字列ですか? 整数ですか? 変換する必要がありますか?)

于 2012-10-18T19:16:44.507 に答える