App empfängt kein Return von PHP-Skript

M

MaThoPa1973

Neues Mitglied
0
Hallo Leute,
ich bekomme so langsam eine mittelschwere Krise, vor allem weil ich wahrscheinlich einfach nur auf der Leitung stehe und hoffe, dass mich hier einer von Euch von selbiger runter schubsen kann...

Folgendes Szenario stellt sich aktuell dar:
Per HttpURLConnection wird auf meinem Server ein PHP-Skript aufgerufen, welches dann eine Datenbankabfrage durchführt und die Anzahl der Datensätze - entweder 1 oder 0 - zurückgeben soll.

Wenn ich das PHP-Skript über den Internetbrowser manuell mit Übergabe der betreffenden Werte aufrufe bekomme ich die Anzahl entsprechend angezeigt. Die App braucht dann aber die Rückmeldung vom Skript, ob der Datensatz vorhanden ist oder nicht.

Hier der PHP-Skriptauszug, welcher die Anzahl entsprechend auswertet und dann eigentlich zurückgeben soll.... eigentlich :)

if (mysqli_num_rows($resultnum) > 0) {
$antwort = "TRUE";
echo $antwort;
}
else {
$antwort = "FALSE";
echo $antwort;
}

mysqli_close($con);
return $antwort;

Den Echo-Befehl habe ich hier jetzt nur reingesetzt um während der Entwicklung entsprechend die Richtigkeit der Angaben überprüfen zu können. Es spielt aber keine Rolle ob ich den Return-Befehl in die If-Else-Schleife setze oder wie hier dargestellt hinten anstelle. Nachfolgend der Auszug um die Serverantwort eigentlich empfangen zu können... Ihr wisst schon - eigentlich:

reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
String answer = reader.readLine();

Log.e(TAG, answer + " Antwort von Homepage als String");

if (answer.trim().equals("TRUE")) {
result = true;
}

Den Log-Eintrag habe ich gesetzt um das Ergebnis im LogCat nachvollziehen zu können. Ich bekomme jedoch, unabhängig davon, ob der angefragte Datensatz enthalten ist oder nicht, immer ein False zurückgegeben.

Bitte, bitte, schubst mich von der Leitung bevor ich hier in Gänze jeden Nerv verliere.

Gruß
Markus
 
PHP:
if (mysqli_num_rows($resultnum) > 0) {
    $antwort = "TRUE";
    echo $antwort;
}
else {
    $antwort = "FALSE";
    echo $antwort;
}

mysqli_close($con);
return $antwort;

PHP:
reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
String answer = reader.readLine();

Log.e(TAG, answer + " Antwort von Homepage als String");

if (answer.trim().equals("TRUE")) {
    result = true;
}

Zur Besseren Lesbarkeit ^^
 
Poste mal den ganze Code
Also von der App, Server funktioniert ja im Browser
 
Zuletzt bearbeitet:
burgerohnealles schrieb:
Poste mal den ganze Code
Also von der App, Server funktioniert ja im Browser

Code:
@Override
protected Boolean doInBackground(String... params) {

Boolean result = false;
BufferedReader reader = null;
BufferedWriter writer = null;
try {
HttpURLConnection conn = openHTTPConnection(params[0]);
writer = writeDataToConnectionOutput(conn, params);
conn.connect(); // Jetzt wird der HTTPRequest an den Server geschickt.

reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
String answer = reader.readLine();

Log.e(TAG, answer + " Antwort von Homepage als String");

if (answer.trim().equals("1")) {
result = true;
}


} catch (Exception e) {
e.printStackTrace();
} finally {
cleanUpReaderAndWriter(reader, writer);
}
return result;

}

Der LogCat-Eintrag sagt immer "NULL" :(
 
Kurze Frage: In deinem Beispiel benutzt du den key "username". Im Beispiel von @kosmus ist der key aber "user". Hast du in deiner App die Namen angepasst?
 
Wegen der readline() - Methode: die gibt doch null wenn da kein carraige return oder new line feed kommt steht in der doku...

PHP:
if (mysqli_num_rows($resultnum) > 0) {
    $antwort = "TRUE\n";
    echo $antwort;
}
else {
    $antwort = "FALSE\n";
    echo $antwort;
}

mysqli_close($con);
return $antwort;


Warum "1"? Wegen true?
if (answer.trim().equals("1"))

Ansonsten auch zur Sicherheit immer einen String auf null prüfen bevor da zugegriffen wird
 
Zuletzt bearbeitet:

Ähnliche Themen

5
Antworten
22
Aufrufe
1.410
590239
5
L
Antworten
15
Aufrufe
905
jogimuc
J
Manny87
  • Manny87
Antworten
11
Aufrufe
159
swa00
swa00
Zurück
Oben Unten