Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Errore generazione xml

  1. #1

    Errore generazione xml

    Salve a tutti, ho un problema del quale non riesco a venirne a capo....
    sto prendendo delle coordinate su database per piazzare i markers sulle google maps. In locale va tutto bene, sul server invece mi da questo errore:

    This page contains the following errors:

    error on line 2 at column 53: AttValue: ' expected
    Below is a rendering of the page up to the first error.

    il codice che esegue è il seguente:
    <?php


    mysql_connect("localhost", "xxxxxx", "") or die(mysql_error());
    mysql_select_db("my_xxxxxx") or die(mysql_error());
    $query = "SELECT * FROM table";
    $result = mysql_query($query) or die(mysql_error());

    $doc = new DomDocument ("1.0");
    $node = $doc->createElement("markers");
    $parnode = $doc->appendChild($node);

    header("Content-type: text/xml");

    while($row = mysql_fetch_array($result))
    {
    $node = $doc->createElement("marker");
    $newnode = $parnode->appendChild($node);
    $newnode->setAttribute("cod", $row['cod']);
    $newnode->setAttribute("point", $row['point']);

    $newnode->setAttribute("lat", $row['lat']);
    $newnode->setAttribute("lng", $row['lng']);
    }

    print $doc->saveXML();

    ?>
    in locale mi genera l'xml mentre sul server no.
    l'accesso al database lo effettua, il database è uguale a quello che ho in locale, non capisco cosa possa essere.....
    potreste aiutarmi, grazie...

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,051
    prima cosa, cercherei di capire le differenze di versione di PHP tra server e locale
    seconda cosa, inserirei un po' di echo di debug (o un salvataggio su file di log, visto che poi chiami header()) per ogni azione che fa il programma, giusto per capire dove si ferma

    ad occhio, il problema è nelle primissime istruzioni o nella codifica del file: prova a cancellare tutti gli spazi e le righe vuote tra "<?php" e la prima istruzione

  3. #3
    Ciao, grazie per il tuo interesse, ho provato a rimuovere gli spazi, ma... nulla, ho controllato le versioni php sul server dove gira la versione 5.6 mentre in locale con xampp ho la versione 5.6.31 potrebbe essere questo il problema?

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,051
    hai controllato l'encoding dei file PHP che hai caricato sul server?
    farei in modo che siano tutti UTF-8 e senza BOM

  5. #5
    Ciao diciamo che ho risolto, il problema che si presenta è dovuto al database, nella tabella richiamo un campo che contiene il carattere "€" che mi genera quell'errore, togliendolo funziona, (non capisco comunque perche su DW mi dava tutto ok).
    A questo punto mi sorge un dubbio, il carattere "€" come faccio ad inserirlo nell'xml generato? ho provato a cambiare codifica al campo, ma non va.
    Sempre Grazie a te e al forum dell'aiuto che mi date.

  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    2,927
    Hai provato ad encodare il carattere tipo con htmlentities ?

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,051
    sempre di encoding si parla, passa a DOMDocument il parametro 'utf-8' e vedi se risolvi
    prima controlla che encoding usi sul DB

  8. #8
    ciao, sai che faccio sostituisco € con valore e me ne esco..... grazie per l'aiuto...

  9. #9
    $dom = new DOMDocument('1.0', 'UTF-8'); sul database utilizzo: utf8_unicode_ci, se la sintassi è giusta non va.... stesso errore.

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    10,604
    € si può, anzi, direi che SI DEVE scrivere &euro; che è l'entità HTML (ciò che ti suggeriva cassano).

    Ricorda sempre, DW per programmare (ma anche solo per realizzare pagine statiche) è uno dei mali assoluti, non fare affidamento su ciò che funziona lì, sui suoi strumenti built-in funziona tutto perché sanno come DW genera il codice, browser e server reali invece si aspettano che le cose siano scritte correttamente, cosa che DW essendo un generatore automatico, a volte/spesso non fa.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2017 vBulletin Solutions, Inc. All rights reserved.