Отправка данных в PHP-скрипт в виде XML

Angel Echo

Guest
Отправка данных в PHP-скрипт в виде XML

Корректно и не опасно ли использование такой схемы:

1. Пользователь вводит различные данные в HTML-форму.
2. С помощью JavaScript данные из формы проверяются и из них генерируется XML-строка нужного формата.
3. Эта строка отсылается на сервер POST-методом в PHP-скрипт.
4. PHP-скрипт создает из этой XML-строки DOM и проверяет его валидность с помощью XMLScheme.
5. В случае успешной проверки DOM используется нужным образом далее.

Таким образом исключается необходимость проверять корректность каждой переменной из HTML-формы отдельно (если их число велико (штук 20, например) то получается большое количество громоздких IF-ELSE в начале скрипта). Все данные формы передаеются в одной переменной и проверяются одной схемой XMLScheme.
 

FreeSpace

Чукча-читатель
Короткий ответ: вполне корректно.

Длинный ответ:
Существует огромное количество способов автоматизации обработки получаемых от пользователя данных, начиная от прохождения по массиву $_POST foreach'ем, заканчивая использованием готовых формвалидаторов.
 

Angel Echo

Guest
Дело в том, что такая схема позволяет сделать ввод-вывод всех скриптов единообразным. Например, на входе всегда только 4 переменных:

$context - тип объекта (например, page, user или order)
$action - что сделать с объектом (save, delete, edit, create, print и проч.)
$object - идентификатор объекта или XPath к объекту
$content - XML с данными объекта, параметрами отображения и проч.

Вот простой пример:

$context="paragraph"
$action="update"
$object="/SITE/PAGE[@id=234]/PARAGRAPH[@id=2]"
$content="<PARAGRAPH>Hello</PARAGRAPH>"

Скрипт узнает, что ему нужно обновить данные параграфа ID=2 на странице с ID=234 и этими новыми данными будет строка "Hello".

Причем не важно с чем мы работаем, с XML-хранилищем или БД, требуемый объект(ы) ищется на основе XPath.

Опаску вызывает только этап генерации XML на стороне пользователя с помощью JavaScript. Сколько сижу в И-нете ни разу не встречал такого способа, вот и думается, в чем причина ?
 

FreeSpace

Чукча-читатель
Ну хотя бы в том, что до сих пор у некоторых людей javascript может быть отлкючен.
А вообще мне кажется, что люди просто не хотят заморачиваться: через форму работает - ну и ладно.
 
Сверху