Jump to content

Converting and sending web form data as XML


creative1

Recommended Posts

Hi, I'm new to PHP and have dabbled a little but need some help or someone to point me in the right direction if possible.

 

I have an ajax web-form that sends the inputed data to a php file and then emails the results to the designated address (all working fine).

 

However, what I am looking to do is have the php file (in addition to the current function) convert the data into XML and then attach the XML file to the email that is sent out.

 

As mentioned I'm new to php and have a small amount of knowledge so any help on this would be very much appreciated.

 

Cheers

 

 

 

 

So basically there are 3 parts:

 

[*]Build the XML string from the submitted form fields

[*]Save the XML string as a .xml file

[*]Send the XML file as an attachment to an email

 

Part 1 - build the XML string. I presume you're posting the form data?



$name = htmlentities($_POST['name']);
$comments = htmlentities($_POST['comments']);

$xml = trim("

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<submission>
<name>$name</name>
<comments>$comments</comments>
</submission>

");

 

Part 2 - write the XML file. Code here: http://www.tizag.com/phpT/filewrite.php

 

Part 3 - send as email attachment. Code here: http://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php

Many Thanks for this info, your right I am posting the info, one quick question on building the string?

 

The php file I'm using already performs some validation, returns results etc, where would I look to start building the string from before or after the validation? (I realise i will need to include the "htmlentities") 

Below if the code for the form I am using.

 

Many thanks

 

Ben

 

<?php

if(!$_POST) exit;

	$name     = $_POST['name'];
        $email    = $_POST['email'];
        $phone   = $_POST['phone'];
        $subject  = $_POST['subject'];
        $comments = $_POST['comments'];
        $verify   = $_POST['verify'];

	if(trim($name) == '') {
        	echo '<div class="error_message">Attention! You must enter your name.</div>';
		exit();
        } else if(trim($email) == '') {
        	echo '<div class="error_message">Attention! Please enter a valid email address.</div>';
		exit();
    } else if(trim($phone) == '') {
        	echo '<div class="error_message">Attention! Please enter a valid phone number.</div>';
		exit();
	} else if(!is_numeric($phone)) {
        	echo '<div class="error_message">Attention! Phone number can only contain digits.</div>';
		exit();
        } else if(!isEmail($email)) {
        	echo '<div class="error_message">Attention! You have enter an invalid e-mail address, try again.</div>';
		exit();
        }

        if(trim($subject) == '') {
        	echo '<div class="error_message">Attention! Please enter a subject.</div>';
		exit();
        } else if(trim($comments) == '') {
        	echo '<div class="error_message">Attention! Please enter your message.</div>';
		exit();
        } else if(trim($verify) == '') {
    	echo '<div class="error_message">Attention! Please enter the verification number.</div>';
		exit();
    } else if(trim($verify) != '4') {
    	echo '<div class="error_message">Attention! The verification number you entered is incorrect.</div>';
		exit();  
    }

        if($error == '') {
        
		if(get_magic_quotes_gpc()) {
            	$comments = stripslashes($comments);
            }


        
         $address = "[email protected]";


         
         $e_subject = 'You\'ve been contacted by ' . $name . '.';


        

	 $e_body = "You have been contacted by $name with regards to $subject, their additional message is as follows.\r\n\n";
	 $e_content = "\"$comments\"\r\n\n";
	 $e_reply = "You can contact $name via email, $email or via phone $phone";

         $msg = $e_body . $e_content . $e_reply;

         if(mail($address, $e_subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")) {



	 echo "<fieldset>";			
	 echo "<div id='success_page'>";
	 echo "<h1>Email Sent Successfully.</h1>";
	 echo "<p>Thank you <strong>$name</strong>, your message has been submitted to us.</p>";
	 echo "</div>";
	 echo "</fieldset>";

	 } else {

	 echo 'ERROR!';

	 }
                      
}

function isEmail($email) { 

return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));

}
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.