Skip navigation.
Home

Creating a simple feedback form using PHP

Creating a simple feedback form using PHP is very easy, thanks to PHP's prebuilt mail() function. In this tutorial I'll show you a complete, working example.

Firstly, lets create the HTML portion of the form:

<form action="sendmail.php" method="POST">
<b>Your name :</b> <input type="text" name="name"><br>
<b>Your e-mail :</b> <input type="text" name="email"><br>
<b>Message</b><br><textarea name="message"></textarea>
<input type="submit" value="Send"><input type="reset" value="Clear">
</form>

This is a basic form with two input fields and a textarea. Since we are using the POST method, we'll
be eliciting PHP's $_POST variables within our PHP script to retrieve what's been entered. Inside
the PHP script called "sendmail.php" (as that's what we're specifying above in our form),
enter the following:

/*Here we are going to declare the variables*/
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
//Save visitor name and entered message into one variable:
$formcontent="VISITOR NAME: $name\\n\\nFEEDBACK: $message";
$recipient = "you@yourdomain.com";
$subject = "Contact Form";

Obviously, you'll need to change the recipient to your own email address. If you want to send it to more than one email address, just put a comma in between them. You can also change the subject. By using the $_POST array of PHP, which is an associative array, we can access all the elements of the form.
Looking back at the first input field in the form, you will see name="name". 
This is how we got the variables $_POST['name'] and $_POST['email'] and $_POST['message'] above- they came from each form element's given name. In other words, you use each form element's name attribute as the key to accessing its value within array $_POST.

Continuing with our "sendmail.php" script, we now need to construct a mail header which mail() requires before it can send the form to
you:

$mailheader = "From: $email\\r\\n";
$mailheader .= "Reply-To: $email\\r\\n";
$mailheader .= "MIME-Version: 1.0\\r\\n";

These are simple mail headers. The first two tell the email program who it is from and who to reply to. The last one tells the
MIME-Version. All this information will be included in the email that's sent to you. Finally, we're now ready to invoke the mail() function to actually send the form:

mail($recipient, $subject, $formcontent, $mailheader) or die("Failure");
echo "Thank You!";

This executes the mail function with four parameters. It mails to the recipient with a subject, message, and headers. If it does not execute (die), it will print "Failure!".

And now the complete "sendmail.php" script:

<?php
/*Here we are going to declare the variables*/
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
//Save visitor name and entered message into one variable:
$formcontent="VISITOR NAME: $name\\n\\nFEEDBACK: $message";
$recipient = "you@yourdomain.com";
$subject = "Contact Form";
$mailheader = "From: $email\\r\\n";
$mailheader .= "Reply-To: $email\\r\\n";
$mailheader .= "MIME-Version: 1.0\\r\\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Failure!");
echo "Thank You!";
?>

That is it!

Author biography:

Stevie Peele is the webmaster of net-riches.com. He enjoys web design, coding, and web
development. He is in the tenth grade at Liberty High School in Liberty, SC where he carries a 3.95 GPA.