Php

2015-04-25 9 views
5

json oluşturma sırasında hata mysql gelen verileri php içine almak ve json biçiminde bir denetleyiciye (açısal) döndürmeye çalışıyorum.Php

json oluşturma sırasında, bazı istenmeyen dize ekleniyor çünkü ben json geçiş yaparken hata alıyorum. json geliyor

{itemData:{"data":[{"name":"item1","quantity":"10"},{"name":"item2","quantity":"20"},{"name":"item3","quantity":"25"}]  

<!-- Hosting24 Analytics Code --> 
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script> 
<!-- End Of Analytics Code --> 

}} 

vurgulanan bölümünü Yukarıda: json (konsol denetleyicisi olan) baskı sonrasında konsol çıkış

$json_response = array(); 

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    $row_array["name"] = $row["name"]; 
    $row_array["quantity"] = $row["quantity"]; 
    array_push($json_response,$row_array); 
} 
echo json_encode($json_response); 

Ve takip ediyor: Aşağıdaki

benim php kodu , bunun nedeni, hatanın gerçekleşmesidir.

Lütfen sorunu çözmek için bana yardımcı olun.

+0

Hangi hatayı alıyorsunuz? – kratenko

+0

Mysql kütüphanesini kullanmayı bırakmanızı tavsiye edebilir miyim? Kullanımdan kaldırıldı. Mysli'ye veya PDO'ya daha iyi gidin. Bu kodunuzu daha da güvenli hale getirecek! –

+0

Ev sahibinizle ilgili bir şey olduğuna inanıyorum. Eklenen kod, barındırıcınız tarafından oluşturulan bir izleme komut dosyasıdır. Sunucudan her isteği eklediklerini düşünüyorum. 'Echo json_'dan sonra' exit(); 'kullanmayı deneyin. Bu durumun yardımcı olmaması durumunda - farklı bir sunucu kullanmayı deneyin veya onlarla iletişime geçin. –

cevap

4

Tamam, benim yorum doğru olduğunu teyit edebilir biraz araştırma yaptıktan sonra. Sizin kodunuz gayet iyi ve kodunun kodunuz tarafından oluşturulduğu json dize tamam. Ancak

, istenmeyen eklenen dize:

<!-- Hosting24 Analytics Code --> 
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script> 
<!-- End Of Analytics Code --> 

Sunucunuz tarafından eklenen ediliyor. Ücretsiz bir sunucu olduğuna inanıyorum ve bu yüzden kendi kodlarını web sitenize enjekte etmelerine izin veriyorlar. Sunucunuzdan yapılan tüm isteklere (ajax istekleri dahil) bu senaryoyu ekleyen bir mekanizmaya sahiptirler.

Bu kod sunucu tarafından eklendiğinden, kodunuzda üstesinden gelmek için yapabileceğiniz hiçbir şey yok gibi görünüyor. Tek seçenek başka bir hosting şirketi aramak veya ücretli bir plana sahip olmak gibi görünüyor.

Güncelleştirme - json dizesini yazdırdıktan hemen sonra exit(); işlevini kullanmayı deneyebilirsiniz. Ev sahibinin enjeksiyonunu kırabilir.

+0

çözümünüz makul görünüyor, ancak 'exit() 'çalışmasından şüpheliyim. OP'nin PHP betiğinin kontrollü bir ortamda yürütüldüğüne ve bu betiğin sonlandırıldığına, ortamın HTTP yanıtına geri göndermeden önce mesaja eklendiğine inanıyorum. – KarelG

+0

Bilgi için çok teşekkürler ... benim için çalıştı :) –

+0

@KarelG, Bulduğum diğer yorumlar ve tartışmalara dayanan olası çözümü öneririm, aksi halde bundan bahsetmem. Tabii ki en iyi çözüm, iyi bir barındırma şirketinden ücretli bir hosting planı almak olacaktır. –

0

$ bağl sizin mysqli bağlantı nesnesidir: -

$query = "SELECT name, quantity FROM tablename"; 

    if ($result = mysqli_query($conn, $query)) 
    { 
     $out = array(); 

     while ($row = $result->fetch_assoc()) 
     { 
      $out[] = $row; 
     } 

     echo json_encode($out); 
     mysqli_free_result($result); 

    } 
0

JSON'unuzu oluşturmak için Simple JSON for PHP numaralı küçük kütüphaneyi kullanabilirsiniz.

include('includes/json.php'); 

$Json = new json(); 

$Json->add('status', '200'); 
$Json->add('message', 'Success'); 
$Json->add("data",$json_response); 

$Json->send();