2016-07-14 93 views
0

所以,我把我的PHP頁面連接到託管服務器上的我的android應用程序(Hostgator)。現在我的JSON數據的PHP腳本似乎沒有正確返回。這在我的wamp服務器上工作得很好。下面的例子的問題...JSON [「data」,「pre database」]

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

任何ide的我做了什麼錯或發生了什麼,將不勝感激。

PHP腳本(可能已經過期,該項目是舊的):

<?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

這不是有效的JSON。 – rjdown

回答

1

這不是有效的JSON。 JSON基本上是javascript:如果你生成的json會是javascript語法錯誤,那麼它不是有效的json。

你有兩個獨立的echo json_encode(...)塊,所以你生產兩個完全分離的/獨特的json字符串。您的輸出只能是一個SINGLE json字符串。

例如[...][...]是粘在一起的兩個單獨的陣列。這是一個JavaScript語法錯誤,因此它也是無效的json。如果你有這樣的事情

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

你想最終

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

,並確定

但是你必須

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

[...][...] 
結束

這是一個徹頭徹尾的語法錯誤。

請注意,您很容易受到sql injection attacks的影響。

+0

優秀!已刪除 ** $ out = array('data','pre database'); echo json_encode($ out); **並且它現在可以工作了!比\ K你好多!現在我會研究注射問題:) – majortom84