Ich habe PHP-Code, der zu MySql verbindet und Daten zu JSON codiert. Später würde ich es filtern und spezifisches JSON-Objekt erhalten. Es funktionierte gut, während ich ein NameValuePair-Objekt verwendete, aber jetzt möchte ich Variablen wie Benutzername und Passwort verwenden. Jetzt bekomme ich diese Warnung in logcat Fehler beim Analysieren von Daten .org.json.JSONException: Wert null des Typs org.json.JSONObject $ 1 kann nicht in JSONArray konvertiert werden.Android NameValuePair sende Werte
Wie sollte ich den Code ändern, der richtig funktionieren könnte?
$q=mysql_query("SELECT username, firstname, lastname, email, phone1, skype, city, description FROM mdl_user WHERE username LIKE '$username' AND password LIKE '$password'");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
-Code, die Anfrage sendet:
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("usern",""+usr));
nameValuePairs.add(new BasicNameValuePair("passw",""+psw));
InputStream is = null;
String result = "";
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://ik.su.lt/~jbarzelis/Bdarbas/getUserInfo.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
Edited
$username = mysql_real_escape_string($_REQUEST['usern']);
$password = mysql_real_escape_string($_REQUEST['passw']);
$q=mysql_query("SELECT username, firstname, lastname, email, phone1, skype, city, description
FROM mdl_user WHERE username LIKE '$username' AND password LIKE '$password'");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
Es war nicht der ganze Code. Oben bearbeitet. – LTnewbie
Jetzt macht meine Post keinen Sinn, also werde ich es löschen :) –
Aber immer noch sollten Sie lieber "=" als "LIKE" in der Autorisierung verwenden. Und versuchen Sie, Ihren Benutzernamen und Ihr Passwort fest zu codieren, um zu überprüfen, ob Ihre Ausgabe gedruckt wird. Wenn dies der Fall ist und das Problem verschwindet, haben Sie Probleme mit dem Senden der Daten an das PHP-Skript, anstatt es zu empfangen. –