Я пытаюсь сохранить данные в файл XML.Данные не сохраняются должным образом в файл XML
if (isset($_POST['submit'])) {
$name = mysql_real_escape_string($_POST['name']);
$xml = new DOMDocument("1.0", "ISO-8859-1");
$xml->preserveWhiteSpace = false;
$xml->load('/var/www/Report/file.xml');
$element = $xml->getElementsByTagName('entries');
$newItem = $xml->createElement('reports');
$newItem->appendChild($xml->createElement('timestamp', date("F j, Y, g:i a",time())));
$newItem->appendChild($xml->createElement('name', $name));
$element -> item(0) -> appendChild($newItem);
$xml->formatOutput = true; // this adds spaces, new lines and makes the XML more readable format.
$xmlString = $xml->saveXML(); // $xmlString contains the entire String
$xml->save('/var/www/Report/file.xml');
}
В любое время я использую mysql_real_escape_string(), чтобы экранирует специальные символы в моей строке или попытаться дезинфицировать мои данные, мой файл XML выглядит как-то в изображении ниже.
Я не понимаю, почему начало имени тега отсутствует в моем файле XML и почему мои данные $ имя не сохраняется в файл XML либо. Как я могу это исправить. Любая помощь будет оценена по достоинству. Заранее спасибо
Спасибо миллион за ответ @tzunghaor. Теперь теги XML полностью созданы, даже если в них нет данных. Итак, есть способ избежать жаргонов с пользовательского ввода перед сохранением данных в XML-файл? – user1444442
Что вы подразумеваете под жаргоном? Вульгарные слова? Разбор человеческого языка - довольно сложная задача. – tzunghaor
О, что я имел в виду, был особым символом, который пользователь мог бы ввести в качестве входной информации в веб-форму. Я бы не хотел сохранять эти данные в файле XML. т.е. ** ', /,:, **. Есть ли способ очистить пользовательские входы? – user1444442