title: Contact form - success message
body: <p>I am using a contact form and at the moment when you submit your details you are brought to a new page with a "thank you" message. I don't want users to be re-directed to a new page and instead I would like the "thank you" message to be displayed on the same page as the form. The code I am using is below.</p>
  
  <p><strong>Contact form code:</strong></p>
  
  <pre><code>  &lt;form name="htmlform" method="post" action="html_form_send.php"&gt;
  &lt;table width="450px"&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td valign="top"&gt;
    &lt;label for="first_name"&gt;First Name *&lt;/label&gt;
   &lt;/td&gt;
   &lt;td valign="top"&gt;
    &lt;input  type="text" name="first_name" maxlength="50" size="30"&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  
  &lt;tr&gt;
   &lt;td valign="top""&gt;
    &lt;label for="last_name"&gt;Last Name *&lt;/label&gt;
   &lt;/td&gt;
   &lt;td valign="top"&gt;
    &lt;input  type="text" name="last_name" maxlength="50" size="30"&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td valign="top"&gt;
    &lt;label for="email"&gt;Email Address *&lt;/label&gt;
   &lt;/td&gt;
   &lt;td valign="top"&gt;
    &lt;input  type="text" name="email" maxlength="80" size="30"&gt;
   &lt;/td&gt;
  
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td valign="top"&gt;
    &lt;label for="telephone"&gt;Telephone Number&lt;/label&gt;
   &lt;/td&gt;
   &lt;td valign="top"&gt;
    &lt;input  type="text" name="telephone" maxlength="30" size="30"&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td valign="top"&gt;
    &lt;label for="comments"&gt;Comments *&lt;/label&gt;
   &lt;/td&gt;
   &lt;td valign="top"&gt;
    &lt;textarea  name="comments" maxlength="1000" cols="25" rows="6"&gt;&lt;/textarea&gt;
   &lt;/td&gt;
  
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td colspan="2" style="text-align:center"&gt;
    &lt;input type="submit" value="Submit"&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;/table&gt;
  &lt;/form&gt;
  </code></pre>
  
  <p><strong>PHP code to send form:</strong></p>
  
  <pre><code>&lt;?php
  if(isset($_POST['email'])) {
  
      // CHANGE THE TWO LINES BELOW
      $email_to = "you@yourdomain.com";
  
      $email_subject = "website html form submissions";
  
  
      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.&lt;br /&gt;&lt;br /&gt;";
          echo $error."&lt;br /&gt;&lt;br /&gt;";
          echo "Please go back and fix these errors.&lt;br /&gt;&lt;br /&gt;";
          die();
      }
  
      // 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.&lt;br /&gt;';
    }
      $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.&lt;br /&gt;';
    }
    if(!preg_match($string_exp,$last_name)) {
      $error_message .= 'The Last Name you entered does not appear to be valid.&lt;br /&gt;';
    }
    if(strlen($comments) &lt; 2) {
      $error_message .= 'The Comments you entered do not appear to be valid.&lt;br /&gt;';
    }
    if(strlen($error_message) &gt; 0) {
      died($error_message);
    }
      $email_message = "Form 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";
  
  
  // 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);  
  ?&gt;
  
  &lt;!-- place your own success html below --&gt;
  
  Thank you for contacting us. We will be in touch with you very soon.
  
  &lt;?php
  }
  die();
  ?&gt;
  </code></pre>