2016-07-14 43 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