Запись в XML файл через форму

Статус
Закрыто для дальнейших ответов.

glinda

Member
Регистрация
01.05.2010
Сообщения
10
День добрый. Нужно внести данные через форму в HTML файле в файл с расширением XML.
Вот как это делаю (три файла myxml.xml, form.html, addxml.php)

myxml.xml
Код:
<?xml version="1.0" encoding="UTF-8" ?>
<books>
  <book>
    <title>Антилузер</title>
    <author>Илиас Меркури</author>
    <pages>288</pages>
    <isbn>978-5-271-19777-2</isbn>
    <year>2008</year>
  </book>
</books>

form.html
Код:
<!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=utf-8" />
<title>Документ без названия</title>
</head>
<body>
<form name="form1" method="post" action=" addxml.php ">
Autor
<br>
<input type="text" name="autor">
<input type="submit" name="Submit2" value="Сохранить">
</form>
</body>
</html>
addxml.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=windows-1251" />
<title>Документ без названия</title>
</head>
<body>
<?php
    $xml = simplexml_load_file('myxml.xml');
    $xml->book[0]->autor = $autor;
    $xml->asXML('myxml.xml');
?>
</body>
</html>
В результате в xml файле в строчке <autor> - пустое значение.
Такое ощущение что переменная $autor не определена, но я же её передаю из from.html

Посмотрите, плз., что не так.
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
Если у вас выключен register_globals, что конечно правильно, локальная переменная $autor для данных переданных методом POST/GET создаваться не будет, поэтому необходимо явно указывать суперглобальный массив:

$xml->book[0]->author = $_POST['autor'];
Основная проблема в том, что в XML файле используется author (верно), а при добавлении autor. Исправьте и все будет работать.
 
  • Like
Реакции: kein

glinda

Member
Регистрация
01.05.2010
Сообщения
10
Спасибо. Через глобальную переменную заработало - ура!
Аutor - очепятка, author везде.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ