2016-05-30 65 views
0

这里此代码后,另一个测试didtn工作突然工作,然后和说,JSON包含HTML元素,如
,我不能让它再工作,我需要帮助我不能解析JSON数据

<?php 

include("config.php"); 

if(isset($_POST["email"]) && isset($_POST["username"]) && isset($_POST["password"])){ 
    $email = $_POST["email"]; 
    $username = $_POST["username"]; 
    $password = $_POST["password"]; 
} 

$con = mysqli_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME); 

$response = array(); 

$statement = mysqli_prepare($con, "SELECT * FROM accounts WHERE email = ? OR username = ?"); 
mysqli_stmt_bind_param($statement, "ss", $email, $username); 
$result = mysqli_stmt_execute($statement); 
$rows = $result->num_rows; 

if($rows > 0){ 
    $response["success"] = false; 
    $response["message"] = "Email or Username already exists."; 
}else{ 
    mysqli_stmt_close($statement); 
    $statement2 = mysqli_prepare($con, "INSERT INTO accounts (email, username, password) VALUES (?, ?, ?)"); 
    mysqli_stmt_bind_param($statement2, "sss", $email, $username, $password); 
    $result2 = mysqli_stmt_execute($statement2); 
    $rows2 = $result2->affected_rows; 

    if($rows2 > 0){ 
     $response["success"] = true; 
     $response["message"] = "Account created successfuly."; 
    }else{ 
     $response["success"] = false; 
     $response["message"] = "Creation error."; 
    } 
} 

echo json_encode($response); 

mysqli_close($con); 

?> 

当我解析它在andoid它给我说,它包含的东西全髋关节置换是没有一个字符串..这是我用来解析JSON

private void register() { 
     Response.Listener<String> responselistener = new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       try { 
        JSONObject jsonresponse = new JSONObject(response); 
        boolean success = jsonresponse.getBoolean("success"); 
        String message = jsonresponse.get("message").toString(); 
        if(success){ 
         Intent gotoContinueRegisterActivityIntent = new Intent(RegisterActivity.this, ContinueRegisterActivity.class); 
         startActivity(gotoContinueRegisterActivityIntent); 
        }else { 
         error.setText(message); 
        } 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     }; 
     Response.ErrorListener errorListener = new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error2) { 
       error2.printStackTrace(); 
      } 
     }; 
     RegisterRequest registerRequest = new RegisterRequest(s_email, s_username, s_password, responselistener, errorListener); 
     RequestQueue requestQueue = Volley.newRequestQueue(getBaseContext()); 
     requestQueue.add(registerRequest); 
    } 
+0

尝试发送一个'json'头 - >'标题( “内容类型:应用程序/ JSON”);' – Darren

+0

如何u能请给我看看? –

+0

刚刚做了.....把'header(...)'放在你的php脚本的开头。 – Darren

回答

1

你最好实际发送头,让Android的代码你Android应用程序知道它正在接收json,因为它可能认为它获得了内容类型:text/html

试着将这个头在你的PHP脚本的顶部:

<?php 
header("Content-Type: application/json"); 
+0

工作:D再次感谢你 –