Сохранение формы PHP в отдельный XML для каждой отправки - PullRequest
0 голосов
/ 04 декабря 2018

Я искал здесь решение и нашел скрипт ниже, чтобы сохранить отправку формы в формате XML.Он добавляет данные формы в существующий файл XML.

Мне нужно иметь возможность сохранять каждую отправку формы в виде отдельного файла XML .Имя файла может быть просто отметкой времени.Я немного изменил сценарий, потому что вместо $_REQUEST он использовал $_POST.

<?php

// Script by Fred Fletcher, Canada.

$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];

$xml = new DOMDocument('1.0', 'utf-8');
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->load('file.xml');

$element = $xml->getElementsByTagName('Lead')->item(0);

$timestamp = $element->getElementsByTagName('timestamp')->item(0);
$name = $element->getElementsByTagName('Contact')->item(0);
$email = $element->getElementsByTagName('email')->item(0);
$message = $element->getElementsByTagName('message')->item(0);

$newItem = $xml->createElement('Lead');

$newItem->appendChild($xml->createElement('timestamp', date("F j, Y, g:i a",time())));;

$newItem->appendChild($xml->createElement('Contact', $_REQUEST['name']));
$newItem->appendChild($xml->createElement('email', $_REQUEST['email']));
$newItem->appendChild($xml->createElement('message', $_REQUEST['message']));

$xml->getElementsByTagName('entries')->item(0)->appendChild($newItem);

$xml->save('file.xml');

echo "Data has been written.";

?>

1 Ответ

0 голосов
/ 04 декабря 2018

Попробуйте это решение, оно сохранит данные в файл, имя которого включает метку времени и микротайм (чтобы предотвратить перезапись файла, если запросы приходят в ту же секунду:

$xml = new DOMDocument('1.0', 'utf-8');

$lead = $xml->createElement('lead');
$lead->appendChild($xml->createElement('timestamp', date('d.m.Y H:i:s')));
$lead->appendChild($xml->createElement('name', $_REQUEST['name']));
$lead->appendChild($xml->createElement('email', $_REQUEST['email']));
$lead->appendChild($xml->createElement('message', $_REQUEST['message']));

$xml->appendChild($lead);
$xml->formatOutput = true;
$xml->save(microtime(true).'.xml');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...