2016-04-30 4 views
-1

das ist mein PHP-SkriptFehler beim Analysieren von JSON-Daten auf die Ausführung von PHP-Skript

<?php 
try{ 

$con = new PDO('mysql:host=localhost;dbname=pfe'/*info db*/,'root'/*login*/, ''/*mdp*/); 

} 

catch (Exception $e) 

{ 

die('Erreur : '.$e->getMessage()); 

} 

$msg = $_GET['msg']; 
$mail = $_GET['mail']; 

$result = $con->prepare("INSERT INTO message (`msg`, `mail`) 
     VALUES ('{$msg}', '{$mail}')"); 
$result->execute(); 
if($result == true) { 
echo '{"query_result":"SUCCESS"}'; 
} 

else{ 

echo '{"query_result":"FAILURE"}'; 
} 

mein Skript ich denke, ist gut, weil ich es mit meinem Browser versucht, es funktioniert, aber mit Android einfügen nicht die Daten und dies ist Java-Klasse,

EditText msg,mail; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

msg = (EditText) findViewById(R.id.editText); 
mail = (EditText) findViewById(R.id.editText2); 
} 

public void signup(View v) { 
    String message = msg.getText().toString(); 
    String email = mail.getText().toString(); 

    Toast.makeText(this, "wait...", Toast.LENGTH_SHORT).show(); 
    new Insertinto(this).execute(message, email); 

} 


public class Insertinto extends AsyncTask<String, Void, String> { 

    private Context context; 

    public Insertinto(Context context) { 
     this.context = context; 
    } 

    protected void onPreExecute() { 

    } 

    @Override 
    protected String doInBackground(String... arg0) { 
     String msg = arg0[0]; 
     String mail = arg0[1]; 

     String link; 
     String data; 
     BufferedReader bufferedReader; 
     String result; 

     try { 
      data = "?msg=" + URLEncoder.encode(msg, "UTF-8"); 
      data += "&mail=" + URLEncoder.encode(mail, "UTF-8"); 

      link = "http://192.168.43.93/dysfonction.php" + data; 
      URL url = new URL(link); 
      HttpURLConnection con = (HttpURLConnection) url.openConnection(); 

      bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream())); 
      result = bufferedReader.readLine(); 
      return result; 
     } catch (Exception e) { 
      return new String("Exception: " + e.getMessage()); 
     } 
    } 

dies json

protected void onPostExecute(String result) { 
     String jsonStr = result; 
     if (jsonStr != null) { 
      try { 
       JSONObject jsonObj = new JSONObject(jsonStr); 
       String query_result = jsonObj.getString("query_result"); 
       if (query_result.equals("SUCCESS")) { 
        Toast.makeText(context, "Data inserted successfully", Toast.LENGTH_SHORT).show(); 
       } else if (query_result.equals("FAILURE")) { 
        Toast.makeText(context, "Data could not be inserted", Toast.LENGTH_SHORT).show(); 
       } else { 
        Toast.makeText(context, "Couldn't connect to database.", Toast.LENGTH_SHORT).show(); 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
       Toast.makeText(context, "Error parsing JSON data.", Toast.LENGTH_SHORT).show(); 
      } 
     } else { 
      Toast.makeText(context, "Couldn't get any JSON data.", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 
} 

, wenn ich es mir ausführen zeigen " Fehler beim Analysieren von JSON-Daten "Ich habe nicht gefunden, wo der PBM ist.

+0

Sie auch die JSON-Daten veröffentlichen sollte – kabaehr

+0

Ihre json validieren zunächst etwas mit wie jsonlint.com .Es scheint, wie Ihr json in einem ungültigen Format ist . –

+0

'" Fehler beim Analysieren von JSON-Daten. "' Wird für eine JSONException ausgelöst. Ich schlage vor, Sie versuchen zu sehen, ob die Nachrichtenfolge, die von Android empfangen wird, gut ist. –

Antwort

0

an der Stelle des

result = bufferedReader.readLine(); 

Verwendung

result = bufferedReader.readLine().toString(); 
0

debug und überprüfen Sie das Ergebnis in der postExecute() erhalten; und ab dem nächsten Mal fügen Sie den logcat auch ..

+0

Echo und wie ist das eine Antwort ? –

0

versuchen, dies zu ändern, um

if($result == true) { 
echo '{"query_result":"SUCCESS"}'; 
}else{ 
echo '{"query_result":"FAILURE"}'; 
} 

diese

if($result == true) { 
    $data = array(
     'query_result' => 'SUCCESS' 
    );  
}else{ 
    $data = array(
     'query_result' => 'FAILURE' 
    );  
} 
echo json_encode($data); 

Es scheint, Ihr Java-Code zu sein, ist so klar. So gesendet Antwort von PHP-Code wie oben funktioniert möglicherweise.

+0

das gleiche @ Prabakaran – raouf

+0

Geben Sie mir die Fehlermeldung JSONException. –

+0

Fehler beim Analysieren von JSON-Daten @Prakaran T – raouf

Verwandte Themen