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">
</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?