2016-07-14 7 views
0

私は自分のPHPページをホストされているサーバー(Hostgator)のAndroidアプリケーションに接続します。 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"}] 

私が間違っていたことや何が起こっているのかは歓迎されます。

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ではありません。

ブロックが2つあり、完全に別々の/別個のjson文字列を2つ生成しています。あなたの出力は、単一のjson文字列でなければなりません。

[...][...]は、接着された2つの別々のアレイです。これは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