Example PHP Contact Form

<?php
// put the emails of recipients here.
// seperate multiples by a comma a@a.co.uk, b@b.co.uk
// leave it alone for script to try and work it out.
$domain_name = eregi_replace("www.","",$SERVER_NAME);
$email_to = "contact@$domain_name";

// now this bit is a little bit clever it ASCII encodes
// the above email addresss for a link. (@ LINE 102)
// It's to help stop spambots from harvesting your email address.
function ascii_encode($str){
global $encoded;
$encoded="";
for ($i=0; $i < strlen($str); $i++){
$encoded .= '&#'.ord(substr($str,$i)).';';
}
return;
}

// this function just displays the errors, you need a
// class ".err" in the css for it to highlight properly.
// I've put a little something in above...

function err_display($err_array, $err){
   if ($err_array["$err"]){
      print ("<tr class=err>");
   }else{
      print ("<tr>");
   }
}

if (!isset($referer_url)){
   // let's try something!
   $referer_url = $HTTP_REFERER;
}

if ($submit){
   // do some testing?
      if ($first_name == ""){
         $err_array[first_name] = "<b>Error</b> please complete your first name.";
      }
   
      if ($last_name == ""){
         $err_array[last_name] = "<b>Error</b> please enter your last name.";
      }


      if ($email != "" ){
         $email = trim($email);
         if(!ereg("([_a-z0-9A-Z\d\-\.]+@[_a-z0-9A-Z\d\-]+(\.[_a-z0-9A-Z\d\-]+)+)",$email,$regs)){
            $err_array[email] = "<b>Sorry</b> your email address ($email) doesn't appear to be valid";
         }
      }else{
         $err_array[email] = "<b>Error</b> please enter your email address.";
      }

      $err_count = count($err_array);
      if ($err_count != 0){
         print ("<p class=err>Please correct the $err_count error(s):");
            while (list($index,$value) = each($err_array)){
               print ("$value<br>");
            }
         print ("</p>");
      }else{
         reset($HTTP_POST_VARS);
         while (list($key,$val) = each($HTTP_POST_VARS)){
            $message .= "$key: $val\n";
            print ("$key: $val<br>");
         }

         $email_headers = "From: $email\n";
         $email_subject = "Contact form";
         
         // this sends the email using the standard php mailer (sendmail?)
         @mail($email_to, $email_subject, $message, $email_headers);
         
         // Here's your thank you note...
         print ("<h2>Thank you $firstname!</h2>");
      }
   }


if (!$submit OR $err_count != "0"){
   ascii_encode("$email_to");
   print ("<p>Please use the form to send a message to <a href=\"mailto:$encoded\">$encoded</a></p>");
   
   
   print ("<form action=\"contact.php\" method=\"POST\">");
   print ("<table>\n<tr>");
   err_display($err_array, first_name);
   print ("<td>First name: (required)</td><td><input type=\"text\" size=14 size=14 name=\"first_name\" value=\"$first_name\"></td></tr>\n<tr>");
   
   err_display($err_array, last_name);
   print ("<td>Surname: (required)</td><td><input type=\"text\" size=14 name=\"last_name\" value=\"$last_name\"></td></tr>");
   
   
   print ("<tr>");
   err_display($err_array, email);
   print ("<td>Email: (required)</td><td><input type=\"Text\" name=\"email\" value=\"$email\"></td></tr>\n");
   print ("<tr><td>Subject: </td><td><input type=\"Text\" name=\"email_subject\" value=\"$email_subject\"></td></tr>\n");
   err_display($err_array, comments);
   print ("<td>Comments</td><td><textarea name=\"comments\" cols=\"25\" rows=\"6\">$comments</textarea></td></tr>\n");
   print ("<tr><td>How did hear about us?</td><td><input type=\"Text\" name=\"hear_about_us\" value=\"$hear_about_us\"></td></tr>\n");
   print ("<tr><td>Would you like to receive our occasional newsletter?</td><td><input type=\"Checkbox\" name=\"newsletter\"></td></tr>\n");
   print ("<tr><td>&nbsp;</td><td><input name=\"submit\" type=\"Submit\" value=\"Send\"></td></tr>\n");
   print ("</table>");
   print ("<input type=\"Hidden\" name=\"referer_url\" value=\"$referer_url\">");
   print ("</form>");
}

?>
</body>
</html>

Home | Tips | Contact | Email Obfuscation For Spambots | 00 | 01 | 02 | 03 | 04 | Example PHP Contact Form