I have been searching here for a solution and found the script below to save a form submission as XML. It appends the form data to an existing XML file.
I need to be able save each form submission as a separate XML file. The name of the file can just be a timestamp. I changed the script a little because instead of $_REQUEST
it was using $_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.";
?>