You are here: Home » All Posts » Contact Forms » Free, simple, PHP based email contact form

Free, simple, PHP based email contact form

in Contact Forms

This page presents the sample code for a simple ‘contact us’ form. The form collects a few pieces of information ( email, name and a message ) from your visitor and emails it to you.

Note: You can make contact forms quickly with Simfatic Forms. Simfatic Forms helps you to make complete, feature rich forms and get it online quickly. Read more here.

Why to have a contact form?

“Contact us” forms are essential for almost any website. The ‘contact us’ form provides an easy interface through which your visitors can communicate to you. Your visitors can quickly submit their views, opinions and suggestions about your website , product or service.

The HTML contact form code

We will create a simple contact form with 3 fields: name, email address and a message field. Making the contact form simple (any form – for that matter) gets you more submissions. The more the number of fields, the more reluctant your visitors will be to submit the form.

The HTML code of the form is given below:

<form method="post" name="contact_form"
action="contact-form-handler.php">
    Your Name:
    <input type="text" name="name">

    Email Address:
    <input type="text" name="email">

    Message:
    <textarea name="message"></textarea>

    <input type="submit" value="Submit">
</form>	

In the contact form download, the form code is in the email-contact-form.html page. To embed the form in a web page, just copy and paste the HTML form code to the web page.

Validating the form submission

Form validations are essential for any web form. For this simple contact form, we will make all the fields mandatory and will make sure that the email field is in the format: name@domain.tld.

It is better to do validations both on the client side and on the server side. Client side validation provides a quick feedback to your visitor. However, the client side validation can just be bypassed by disabling JavaScript in the browser. Therefore, we need to validate on the server side as well.

For client side validation, we will use the Free JavaScript Form Validation Script. The script is very simple to use and has almost all validation types built-in.

Here is the client side form validation code:

<script language="JavaScript">
var frmvalidator  = new Validator("contactform");
frmvalidator.addValidation("name","req","Please provide your name");
frmvalidator.addValidation("email","req","Please provide your email");
frmvalidator.addValidation("email","email",
  "Please enter a valid email address");
</script>

Server-side processing

Once the contact form is submitted, the form submission data is sent to the script mentioned in the action attribute of the form (contact-form-handler.php in our form). The script then will collect the form submission data, validate it and send the email.

The first step is to validate the data. Ensure that the mandatory fields are filled-in, and that the email is in proper format.

The server-side code is given below:

$errors = '';
$myemail = 'yourname@website.com';//<-----Put Your email address here.
if(empty($_POST['name'])  || 
   empty($_POST['email']) || 
   empty($_POST['message']))
{
    $errors .= "\n Error: all fields are required";
}

$name = $_POST['name']; 
$email_address = $_POST['email']; 
$message = $_POST['message']; 

if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", 
$email_address))
{
    $errors .= "\n Error: Invalid email address";
}

Emailing the form data using PHP

We will now compose and send the email.

if( empty($errors))

{

$to = $myemail;

$email_subject = "Contact form submission: $name";

$email_body = "You have received a new message. ".

" Here are the details:\n Name: $name \n ".

"Email: $email_address\n Message \n $message";

$headers = "From: $myemail\n";

$headers .= "Reply-To: $email_address";

mail($to,$email_subject,$email_body,$headers);

//redirect to the 'thank you' page

header('Location: contact-form-thank-you.html');

}

We first check whether the validations succeeded. If there were errors, the email is not sent. The PHP mail function is used to send the email. After sending the email, the visitor is redirected to the ‘thank you’ page.

Download the code for the contact form

Click here to download php-email-contact-form.zip

The download contains the code for the HTML form, the validations and the PHP form handler.

More Contact forms:

Be Sociable, Share!
  • vagelis

    hello, i did exactly what you have written and when I use wamp I complete the form and send it, it looks like the information has been sent to my e-mail.it shows the message thank you etc,but I have no mail in my account.

    will make sure that the email field is in the format: name@domain.tld.

    is there anything i can do about this?

    thank you, sorry about my english.

  • Rachel

    I made a new folder called “contact” where I placed all the files and put the ‘contact-form.html’ code on my contact.html page.

    Now whenever I submit the message, the “contact-form-handler.php” starts to download and does not send an email.

    Please help! THank you!

    • Prasanth

      your web server does not support PHP

    • Mayur

      1) { $boundary = uniqueid(“EWSEWS”); $headers.=”Content-Type:multipart/mixed”. “; boundary = $boundary\r\n\r\n”. “This is a MIME Encoded message.\r\n\r\n”. “–$boundary”; foreach($attachment as $att) { $headers.=”\r\n”. do_Attachment($att). “–$boundary”; } $headers. = “–\r\n”; } else { $headers.=”do_Attachment($attachment[0])”; }

  • http://www.elmolinotheater.com/defaults2.html Patricia Bailey

    I downloaded the code for the contact form

    “Click here to download php-email-contact-form.zip” above.

    I designed a contact_us.html, contactform.php., contact.css, thank-you.php, class.phpmailer.php, fgcontactform.php, gen_validatorv31.js, and it is not working yet.

    What am I missing?

  • http://www.Omsoftech.com Omsoftech

    Thanks for giving us…

  • amith

    Hi when i click submit .. Php codes are coming in the browser . why the process is not happening???? me new to php.
    reply soon
    thx

  • Kenneth

    I did what had to be done including downloading the source code; how do i get the message into my e-mail account just to test the code works.

  • Din

    Thank you for this helpful guide. PHP is quite hard for me to understand!

  • http://htmlexpert.tk Mustufa

    Whenever i click on submit button php page start downloading i am using drop box as a hosting server plz reply

  • http://weathersealhomeimprovements.net Tim

    i keep getting the following error message:
    “Error: couldnot get Form object contactform”

    this makes no sense to me. i copied everything exactly from another website i used this form on. the original site works fine, but the new site keep giving me this error

  • http://weathersealhomeimprovements.net Tim

    ok so i managed to get rid of the error message but im still not receiving the emails

    • Victor

      Tim, I am receiving the same message. How did you resolve yours?

  • Kevin

    Thanks for the great form, is there any way I can change the colours etc of the email it sends to me?

    Thanks

  • Son Tranduc

    Beside the webserver with php supported, Do I need a mail server to make this work?

    Thanks
    Son Tranduc

  • Seema

    Hi,

    Thanks for great tutorials. Its work fine.
    Can you please help me for how can user receive the thank you message on there mail.

    Thanks
    Seema

  • Marzia

    Hi, it works perfectly apart one thing. I added extra fields for my needs but the javascript alert (if empty) works only in the first two input fields. How is it possibile to make the alert working on all of them?
    here’s my form:
    http://www.magadesign.co.uk/php-email-contact-form-LASER/contact-form.html
    Thanks if anyone can help!!
    Marzia

  • http://no pramod yadav

    sir…
    the above code is running ”’
    but i get thank uuuu messs…
    no getting the email to the desired email addresss///

    please reply ”’
    its urgent
    \

  • Marzia

    well, my comment still awaiting moderation..but there’s not need anymore. I coudn’t see a very stupid error in my third field, which was affecting the functioning of the js in all following fields. Now it’w working perfectly and I even managed to put a radiobutton!!

  • http://www.softlozix.com ajay

    i m not getting any msg ..in my email account .//
    i do as u tell but still not proper responce.//

  • http://www.cavanplumber.com Webster

    Awsome tut, thanks worked as intended! Now I can finally finish my college project: http://www.cavanplumber.com !

Previous post:

Next post: