Sunday, July 1, 2012

Creating a simple contact us form with PHP script

Today we will be building a simple contact us form using PHP. There is not much of description needed for this task

The form












Once this is in place you will need to write the code of PHP which will be as follows

if(isset($_POST['email'])) {
    $email_to = "";
    $email_subject = "Contacted from vergo pharma";
    function died($error) {
        // your error code can go here
        echo "We are very sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.


        echo $error."


        echo "Please go back and fix these errors.


    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');       
    $first_name = $_POST['first_name']; // required
    $last_name = $_POST['last_name']; // required
    $email_from = $_POST['email']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments']; // required
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.

    $string_exp = "/^[A-Za-z .'-]+$/";
  if(!preg_match($string_exp,$first_name)) {
    $error_message .= 'The First Name you entered does not appear to be valid.

  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'The Last Name you entered does not appear to be valid.

  if(strlen($comments) < 2) {
    $error_message .= 'The Comments you entered do not appear to be valid.

  if(strlen($error_message) > 0) {
    $email_message = "Hi, Someone has contacted you from the website. Details below.\n\n";
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    $email_message .= "First Name: ".clean_string($first_name)."\n";
    $email_message .= "Last Name: ".clean_string($last_name)."\n";
    $email_message .= "Email: ".clean_string($email_from)."\n";
    $email_message .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Comments: ".clean_string($comments)."\n";
    $thankyou = "Thank you ";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers,"-f $email_from");
@mail($email_from, $email_subject, $thankyou); 

This code will work for email accounts (a common problem that mails sent using php scripts are not received at the destination email address which is normally caused in some ISP's and servers that require that the Return-Path header email address match the From email address in order for it to be passed onto the users account.)