2016-07-14 4 views
0

Also, ich habe meine PHP-Seite, um eine Verbindung zu meinem Android-App auf einem Hosted Server (Hostgator). Jetzt scheint mein PHP-Skript für die JSON-Daten nicht richtig zurückzusenden. Das funktionierte auf meinem wamp-Server ganz gut. Beispiel unten der Ausgabe ...JSON ["data", "pre-database"]

["data","pre database"][{"email":"[email protected]","password":"test","fname":"Thomas","lname":"Cummings","phone":"5052030822","temppass":"15151","alert":"B"}] 

Alle Ideen, was ich falsch gemacht habe oder was vor sich geht, würde geschätzt werden.

PHP-Skript (möglicherweise veraltet sein, dieses Projekt ist alt):

<?php 

$user = "ab73953_test"; 
$pass = "[email protected]"; 
$db = "ab73953_testdb"; 
$out = array('data', 'pre database'); 
echo json_encode($out); 
$db = mysqli_connect('localhost', $user, $pass, $db) or die("did not work"); 


$email=$_POST['username']; 
$email = "[email protected]"; // testing 

$qry = 'SELECT * FROM users WHERE email = "'. $email .'"' ; 

$result = mysqli_query($db, $qry) or die(" did not query"); 

$count = mysqli_num_rows($result); 
$output = array(); 
if($count > 0){ 
while($row = mysqli_fetch_assoc($result)) 
{ 
    $output[]=$row; 

} 

echo json_encode($output); 

} 
else 
echo json_encode("Could not find user"); 

mysqli_close($db); 
?> 
+1

Das ist kein gültiger JSON. – rjdown

Antwort

1

, die nicht gültig JSON ist. JSON ist grundsätzlich javascript: Wenn der JSON, den du generierst, ein JavaScript-Syntaxfehler wäre, dann ist es kein gültiger JSON.

Sie haben zwei separate echo json_encode(...) Blöcke, so dass Sie zwei völlig separate/eindeutige JSON-Strings erzeugen. Ihre Ausgabe kann nur eine einzige JSON-Zeichenfolge sein.

z.B. [...][...] ist zwei getrennte Arrays, die zusammengeklebt wurden. Es ist ein JavaScript-Syntaxfehler, daher ist es auch ein ungültiger JSON. Wenn Sie so etwas wie

$arr1 = array(...); 
$arr2 = array(...); 
echo json_encode(array($arr1, $arr2)); 

hatte würden Sie sich mit

[[...],[...]] 

beenden und

ok sein, aber Sie haben

echo json_encode($arr1); 
echo json_encode($arr2); 

und am Ende mit

[...][...] 

das ist ein vollständiger Syntaxfehler.

Und beachten Sie, dass Sie anfällig für sql injection attacks sind.

+0

Ausgezeichnet! Gelöscht ** $ out = Array ('Daten', 'Pre-Datenbank'); echo json_encode ($ out); ** und es funktioniert jetzt !! Vielen herzlichen Dank!! Jetzt werde ich in Injektionsprobleme schauen :) – majortom84