Visualizzazione risultati 1 fino 8 di 8

Discussione: [PHP/XML] guestbook funziona in parte

  1. #1
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito [PHP/XML] guestbook funziona in parte

    Salve utenti di AV.

    Ho appena finito un guestbook in php con un database xml, il codice è questo:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" href="style.css" />
    <title>guestbook</title>
    </head>

    <body>
    <div id="header">
    &nbsp;
    </div>
    <div id="content">
    <?php
    if (!isset($_GET["np"])) {
    ?>
    <button onclick="location.href = 'index.php?np'">Nuovo messaggio</button><br />
    <?php
    $doc
    = new DOMdocument("1.0", "UTF-8");
    $doc->load('msg.xml');
    $root = $doc->documentElement;
    $array_msg = $root->getElementsByTagName('msg');
    foreach (
    $array_msg as $ln)
    {
    // Estrago i valore dei nodi
    $author = $ln->getElementsByTagName('author');
    $author = $author->item(0)->nodeValue;
    $date = $ln->getElementsByTagName('date');
    $date = $date->item(0)->nodeValue;
    $text = $ln->getElementsByTagName('text');
    $text = $text->item(0)->nodeValue;
    // Visualizzo i valori a video
    echo "<div class='post'>";
    echo
    "<div class='post-title'><strong>Scritto da</strong> ".$author."<div class='post-date'><strong>Il</strong> ".$date."</div></div>";
    echo
    "<div class='post-msg'>".$text."</div>";
    echo
    "</div>";
    }
    ?>
    <?php
    }else {
    ?>
    <form action="adding.php" method="post">
    <div>
    <label>Nome</label><br />
    <input id="nome" name="name" />
    </div>
    <div>
    <label>Messaggio</label><br />
    <textarea id="messaggio" name="msg" cols="31" rows="5"></textarea>
    </div>
    <div>
    <input type="submit" value="Inserisci messaggio" />
    </div>
    </form>
    <?php
    }
    ?>
    </div>
    </body>
    </html>
    Lo stavo testanto e va tutto bene, il problema e che: quando inserisco un caratteri speciale nel form i dati vengono inseriti all'interno del file xml ma senza i caratteri speciale e sulla index del guestbook mi vengono restituiti questi errori:

    Warning: DOMDocument::load() [domdocument.load]: Input is not proper UTF-8, indicate encoding ! Bytes: 0xE0 0x3C 0x2F 0x74 in file:///C:/Programmi/Apache%20Software%20Foundation/Apache2.2/htdocs/Pc-tools/guestbook/msg.xml, line: 4 in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\Pc-tools\guestbook\index.php on line 20

    Fatal error: Call to a member function getElementsByTagName() on a non-object in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\Pc-tools\guestbook\index.php on line 22

    Di cosa si tratta?

    Sevenjeak
    Software developer and much more

  2. #2
    Guest

    Predefinito

    usa htmlentities prima di inserirli nel file XML (comunque è un problema di codifica).

  3. #3
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Ok, al posto di quella io avevo usato la funzione htmlspecialchasr(), cmq le errori che si trovano nella index?

    Sevenjeak
    Software developer and much more

  4. #4
    Guest

    Predefinito

    Dice che stai chiamando una funzione membro su una var ($root) che non è un oggetto. Usa getElementsByTagName direttamente su $doc
    Ultima modifica di stoner : 29-09-2009 alle ore 15.25.34

  5. #5
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    come dovrei modificare il codice?, cmq il codice funziona, mi conviene lo stesso mettere la funzione getElementByTagName?
    Ultima modifica di sevenjeak : 29-09-2009 alle ore 17.18.03

    Sevenjeak
    Software developer and much more

  6. #6
    Guest

    Predefinito

    Non ho capito, funziona o ti da errore? Prima hai detto che ti dava errore, ora dici che funziona. Non ho capito

  7. #7
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Dicevo che prima mi dava errore, quando mettevo un carattere speciale, ora non mi da nessun errore.

    Volevo solo sapere se lo script sarà meglio con la modifica che mi hai consigliato o lascio cosi?

    Sevenjeak
    Software developer and much more

  8. #8
    Guest

    Predefinito

    Lascialo così, cambia poco!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •