HTML Form To Email
Use the following HTML code to create a basic feedback form that sends you an email when submitted. When a visitor submits this form, the PHP script will generate an email to the webmaster containing the contents of the completed form.
The PHP script is a basic script but it works well. Because of its simplicity, it is very easy to follow. Feel free to customize the code for your own purposes.
View Example
The following code creates this feedback form.
To get the code for this feedback form, download the zip file below.
Download
This is the quickest way to get the form to email script. Simply download the .zip file, customize the files, and you're done.
This .zip file consists of four files:
The feedback form
The "send mail" script
A "Thank you" page
An error message page
All four files are required to create the working feedback form.
Installation:
Once you've downloaded the .zip file above, do the following:
Extract all four files to a directory located within your website (on your local machine). If you don't have a copy of your website on your local machine, any directory will do for now, as long as you upload all files to your hosting provider after the following steps.
Open send_mail.php and find the line that reads $webmaster_email = "name@example.com"; (at the top of the file). Change the name@example.com email address to your own email address (or where ever the form contents should be emailed to).
Once you have checked that the form works on your server, customize the look and feel of feedback_form.html, thank_you.html, and error_message.html to suit your website.
If you change the names of the files, be sure to update the PHP script to reflect the new names.
Also, if you are familiar with HTML/PHP, you could combine the code from all four files into one PHP file. However, this would require substantial modification so, unless you know what you're doing, keep them as four separate files.
If you can't download or access the .zip file, see below.
Modify Your Feedback Form
You can change the look of your feedback form by adding styles to it. Check out these comment boxes to change the color of your feedback form, add a background picture, or add a border to your comment box.
Can't Download The .Zip File?
If you can't download or access the .zip file above, you can copy and paste the code below. Make sure you change the email address at the top of send_mail.php (as per installation instructions above).
The Feedback Form:
Save this code into a file called feedback_form.html
Note that this feedback form includes HTML table code for formatting purposes.
Feedback FormFeedback Form
First Name
Comments
Submit the form
The "Send Mail" Script
This script has been written in PHP. Your web server will need to support PHP to run this. If you're not sure, upload it and see if it works. Most hosting plans support PHP these days.
Save this code as send_mail.php.
If you change the name of any of the other files, be sure to update this script - the names of those files are included in this script.
If you decide to add some fields to your feedback form, you will need to add them to this script too.
/*
This first bit sets the email address that you want the form to be submitted to.
You will need to change this value to a valid email address that you can access.
*/
$webmaster_email = "name@example.com";
/*
This bit sets the URLs of the supporting pages.
If you change the names of any of the pages, you will need to change the values here.
*/
$feedback_page = "feedback_form.html";
$error_page = "error_message.html";
$thankyou_page = "thank_you.html";
/*
This next bit loads the form field data into variables.
If you add a form field, you will need to add it here.
*/
$email_address = $_REQUEST['email_address'] ;
$comments = $_REQUEST['comments'] ;
$first_name = $_REQUEST['first_name'] ;
$msg =
"First Name: " . $first_name . "\r\n" .
"Email: " . $email_address . "\r\n" .
"Comments: " . $comments ;
/*
The following function checks for email injection.
Specifically, it checks for carriage returns - typically used by spammers to inject a CC list.
*/
function isInjected($str) {
$injections = array('(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str)) {
return true;
}
else {
return false;
}
}
// If the user tries to access this script directly, redirect them to the feedback form,
if (!isset($_REQUEST['email_address'])) {
header( "Location: $feedback_page" );
}
// If the form fields are empty, redirect to the error page.
elseif (empty($first_name) || empty($email_address)) {
header( "Location: $error_page" );
}
/*
If email injection is detected, redirect to the error page.
If you add a form field, you should add it here.
*/
elseif ( isInjected($email_address) || isInjected($first_name) || isInjected($comments) ) {
header( "Location: $error_page" );
}
// If we passed all previous tests, send the email then redirect to the thank you page.
else {
mail( "$webmaster_email", "Feedback Form Results", $msg );
header( "Location: $thankyou_page" );
}
?>
The "Thank You" Page
Save this code into a file called thank_you.html
Thank YouThanks for your feedback!
We appreciate that you took the time to send us feedback. Your feedback has been sent to the webmaster.
The Error Page
Save this code into a file called error_message.html
ErrorOops!
Please ensure you have completed all fields before submitting the form.
Also ensure that there is only one email address.
Back
Problems Sending Mail?
If, after installing this script, it doesn't seem to be sending emails:
If you are running the script from your own computer, check that you have PHP installed and that it is configured to send mail.
If you are running the script from your hosting provider's server (i.e. your website is hosted with a hosting provider), check with them to find out why the mail isn't being sent.