Welcome Guest ( Log In | Register)



 
Reply to this topicStart new topic
> A Full Error Protected Php Contact Form
skter4938
post Jun 21 2006, 05:11 AM
Post #1


Newbie
*

Group: Members
Posts: 8
Joined: 15-June 06
Member No.: 25,185



Well hello there yound lads. This is my first tutorial ever. If you would like to see the finished product for yourself please go to http://www.webtodesign.net/contact/


Anyways here we go!

Step 1. Make a file called index.php. This is where the form is going to be. Copy and paste this code in:
CODE

<?php session_start(); ?>
<!--Start error code-->
<?php
if ($_SESSION['error_msg']) {
foreach ($_SESSION['error_msg'] as $val) {
echo "$val<br />";
}
unset($_SESSION['error_msg']);
}
?>
<!--End Error Code-->

<!--Start Form Code-->
                
<form method="POST" action="contact.php">
                                
<p><label for="Name">Name</label><br />
<input id="Name" name="Name" type="text" tabindex="1" size="30" /></p>
                
<p><label for="EmailFrom">Email</label><br />
<input id="EmailFrom" name="EmailFrom" type="text" tabindex="2" size="30" /></p>
                
<p><label for="Subject">Subject</label><br />
<input id="Subject" name="Subject" type="text" tabindex="3" size="30" /></p>
                            
<p><label for="words">Message</label><br />
<textarea name="Message" tabindex="5" rows="10" cols="24" style="width:300px;"></textarea></p>
                
<input type="submit" name="post" id="post" value=" Send " />  <input type="reset" value=" Reset " />
</form>
<!--End Form Code-->


The first part tells the document to start the session. MAKE SURE YOU PUT THIS IN THE VERY BEGGINING BEFORE ANYTHING ELSE!!!

Now let me try and explain. Then the second part of the code, the error checking part, checks if there is an error, such as someone not entering their name or an email which is not valid. For example. If someone decided to be a stupid and enter this for an email "alkjdldaslkjas", it will display "Please enter in a valid email". Anyways, if you try it out you will see what I am talking about.

Now the second part of the code is just the form, which is self explanitory.




Step 2. Ok now make a file called contact.php. This is the part of the script that will process the form. Here is the code:
CODE

<?php

session_start();
//Email Validation
function checkEmail($email)
{
   if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email))
   {
      return FALSE;
   }

   list($Username, $Domain) = split("@",$email);

   if(@getmxrr($Domain, $MXHost))
   {
      return TRUE;
   }
   else
   {
      if(@fsockopen($Domain, 25, $errno, $errstr, 30))
      {
         return TRUE;
      }
      else
      {
         return FALSE;
      }
   }
}


// get posted data into local variables
$EmailTo = "youremail@domain.com";
$EmailFrom = Trim(stripslashes($_POST['EmailFrom']));
$Name = Trim(stripslashes($_POST['Name']));
$Subject = Trim(stripslashes($_POST['Subject']));
$Message = Trim(stripslashes($_POST['Message']));

// validation
$validationOK=true;
if(checkEmail($EmailFrom) == FALSE){
$error_msg[] = "Please enter in a valid email address.";
}
if (Trim($Name)==""){
$error_msg[] = "Please enter in a name.";
}
if (Trim($Subject)=="") {
$error_msg[] = "Please enter in a subject.";
}
if (Trim($Message)==""){
$error_msg[] = "Please enter in a message.";
}
//triggers error message
if ($error_msg) {
$_SESSION['error_msg'] = $error_msg;
header ('Location: index.php');
exit();
}
//sends email
else {
$Body = "You have a new email from $Name.\n\n Reply to $EmailFrom.\n\n $Name says,\n $Message";
$success = mail($EmailTo, $Subject, $Body);
}
//redirect to success page
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=contact_done.php\">";
}
else{
  print "Email could not be sent due to errors. Please email the <a href='mailto:youremail@domain.com>webmaster</a>.";
}
?>


MAKE SURE YOU REPLACE YOUREMAIL@DOMAIN.COM WITH YOUR EMAIL ADDRESS

Ok so this is the part where the script check to see if the form is filled out nice and neatly, with a proper email and all that good stuff. It then emails you what the person wrote and voila! It works!!! It also relocates to a page called contact_done.php.

You can make the contact_done.php file if you want to. That file just tells the viewer that their submission has been sent correctly and that all is dandy. If you do not want to make it, just remove this part of the code:
CODE
print "<meta http-equiv=\"refresh\" content=\"0;URL=contact_done.php\">";




PLEASE TELL ME IF YOU FIND AN ERROR


Thank you very much for checking out my tutorial and good luck with future coding laugh.gif

Download the script -

Notice from Johnny:
Approved.
Go to the top of the page
 
+Quote Post
Hadi
post Jun 21 2006, 06:47 AM
Post #2


Super Member
*********

Group: Members
Posts: 277
Joined: 13-May 06
From: The end of the World
Member No.: 23,599



Wow!! Nice tutorial, thank you very much. As I see you are very good at this (coding, scripting, php etc...) on the contrary I barely now how to code. How di you showed the number of download on your post? It's really cool. Keep up the good work!
Go to the top of the page
 
+Quote Post
Plenoptic
post Jun 21 2006, 01:20 PM
Post #3


Trap Double Mocha Member
***************

Group: [HOSTED]
Posts: 2,220
Joined: 5-November 05
From: That one place over there...
Member No.: 13,830



Very nice tutorial. Usually when I get a php contact form I mess it up some how but this is the full and real thing. Thanks for posting it. Good job.
Go to the top of the page
 
+Quote Post
SolarX
post Jun 21 2006, 01:53 PM
Post #4


Member [Level 3]
******

Group: Members
Posts: 90
Joined: 5-January 06
From: our universe
Member No.: 16,648



I often thought about implementing something like this, but I always put it on the bottom of my list wink.gif

But thanks to your tutorial, I will implement it right now.
thanks in advance smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

Collapse

> Similar Topics

Topics Topics
  1. Php Emailer/contact System(20)
  2. Custom 404 Error Pages(17)
  3. Psp Error- Tut On How To Fix(28)
  4. Wordpress Contact Form That Work With Free Web Hosts(1)


 



- Lo-Fi Version Time is now: 26th July 2008 - 02:56 PM