Перейти к содержимому

Фотография
- - - - -

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


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
Сообщений в теме: 2

#1 glinda

glinda

    Прохожий

    Топикстартер
  • Участник
  • 0
    10 сообщ.

Отправлено 01 Май 2010 в 13:58

День добрый. Нужно внести данные через форму в 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

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

Спонсор

#2 Creator

Creator

    Справедливый админ

  • Администратор
  • 248
    1 744 сообщ.

Отправлено 01 Май 2010 в 15:48

Если у вас выключен register_globals, что конечно правильно, локальная переменная $autor для данных переданных методом POST/GET создаваться не будет, поэтому необходимо явно указывать суперглобальный массив:

$xml->book[0]->author = $_POST['autor'];

Основная проблема в том, что в XML файле используется author (верно), а при добавлении autor. Исправьте и все будет работать.
  • 1

#3 glinda

glinda

    Прохожий

    Топикстартер
  • Участник
  • 0
    10 сообщ.

Отправлено 01 Май 2010 в 16:35

Спасибо. Через глобальную переменную заработало - ура!
Аutor - очепятка, author везде.
  • 0



Похожие темы Свернуть

  Название темы Форум Автор Статистика Последнее сообщение
Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей