Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd parsowania XML
Forum PHP.pl > Forum > XML, AJAX
dark_dvb
Witam wszystkich!
Bardzo proszę o pomoc, wciaz wywala Błąd parsowania XML, żródło:
  1. <?php
  2.  
  3. $wpis = strip_tags($_POST['wpis']);
  4. $nick = strip_tags($_POST['nick']);
  5. $email = strip_tags($_POST['email']);
  6. $gg = strip_tags($_POST['gg']);
  7.  
  8. $time = time();
  9.  
  10. require("connect.php");
  11.  
  12. if(!empty($wpis) && !empty($nick)) {
  13.  
  14. $query = "insert into kg values(null,'$wpis','$nick','$gg','$email','$time')";
  15. $result = $db->Execute($query);
  16. }
  17.  
  18. $query = "select * from kg order by data desc";
  19. $result = $db->Execute($query);
  20. $num = $result->RecordCount();
  21.  
  22. header('Content-type: application/xml; charset="utf-8"');
  23.  
  24. $dom = new DOMDocument();
  25.  
  26. $response = $dom->createElement('response');
  27. $dom->appendChild($response);
  28.  
  29. for($i = 0 ;$i < $num ; $i++)
  30. {
  31.  
  32. $nowy_wpis = $dom->createElement('nowy_wpis');
  33.  
  34.  
  35. $wpis = $dom->createElement('wpis');
  36. $wpis_data = $dom->createTextNode($result->fields['wpis']);
  37. $wpis->appendChild($wpis_data);
  38. $nowy_wpis->appendChild($wpis);
  39.  
  40.  
  41. $nick = $dom->createElement('nick');
  42. $nick_data = $dom->createTextNode($result->fields['nick']);
  43. $nick->appendChild($nick_data);
  44. $nowy_wpis->appendChild($nick);
  45.  
  46.  
  47. $email = $dom->createElement('email');
  48. $email_data = $dom->createTextNode($result->fields['email']);
  49. $email->appendChild($email_data);
  50. $nowy_wpis->appendChild($email);
  51.  
  52.  
  53. $gg = $dom->createElement('gg');
  54. $gg_data = $dom->createTextNode($result->fields['gg']);
  55. $gg->appendChild($gg_data);
  56. $nowy_wpis->appendChild($gg);
  57.  
  58.  
  59.  
  60. $data = $dom->createElement('data');
  61. $data_data = $dom->createTextNode(date("Y-m-d H:m:s",$result->fields['data']));
  62. $data->appendChild($data_data);
  63. $nowy_wpis->appendChild($data);
  64.  
  65. $response->appendChild($nowy_wpis);
  66. $result->MoveNext();
  67. }
  68.  
  69. $xmlString = $dom->saveXML();
  70.  
  71. echo $xmlString;
  72.  
  73. ?>

Czy ktoś wpadł na to, gdzie może być błąd??
dr_bonzo
Po pierwsze to pokaz wygenerowany XML a nie kod php.
2. Kod umieszczaj wewnatrz [ php]
tego czegos[/ php] - jest czytelniejszy
dark_dvb
W jaim sensie wygenerowany?
Przeglądarka zwraca mi:

Błąd parsowania XML: deklaracja XML lub tekstu nie jest na początku jednostki
Obszar: http://localhost/p/ksiega_gosci.php
Numer linii: 1, kolumna 3: <?xml version="1.0"?>
--^
batman
Zakomentuj header, a zamiast echo daj
  1. <?php
  2. ?>
Sprawdź, czy nie masz jakichś spacji przed <?xml. Możliwe, że masz jakiś warning lub notice.
dark_dvb
Zastosowałem się do wskazówek kol. batmana i to co zwraca przegladarka (FF):
 string(818) "<?xml version="1.0"?> <response><nowy_wpis><wpis>1</wpis><nick>1</nick><email>1@1.pl</email><gg>11</gg><data>2008-12-28 21:12:27</data></nowy_wpis><nowy_wpis><wpis>3</wpis><nick>3</nick><email>3@3.pl</email><gg>3</gg><data>2008-12-28 20:12:36</data></nowy_wpis><nowy_wpis><wpis>2</wpis><nick>2</nick><email>2@2.pl</email><gg>22</gg><data>2008-12-28 20:12:18</data></nowy_wpis><nowy_wpis><wpis>1</wpis><nick>1</nick><email>1@1.pl</email><gg>1</gg><data>2008-12-28 20:12:53</data></nowy_wpis></response> "

Gdzie szukać spacji przed <?xml questionmark.gif
batman
Sama treść wydaje się być ok. Spróbuj następujące rzeczy zrobić (po kolei lub wszystkie na raz):
1. Przenieś header bezpośrednio nad echo.
2. Włącz raportowanie błędów na poziome notice.
3. Wszystkie dane tekstowe wstaw w cdata.
4. Zmień content-type na text/xml.
dark_dvb
Niestety nic nie pomogło :-(
batman
Spróbuj jeszcze ustawić kodowanie znaków w xml-u na utf-8 i zapisz plik w utf-8. Sprawdź, czy nie masz znaków BOM na początku pliku. No i sprawdź w kilku przeglądarkach. Możliwe, że któraś z nich poda Ci więcej informacji o błędzie.
dark_dvb
Niestety nic to nie dało...

Czy mógłby ktoś spróbować przetestować ten kodu u siebie?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.