Jump to content

My PHP contact Form does't work correctly... Please help???


Zachary1748

Recommended Posts

Here's my website page with the Contact Form: http://www.3dmark3t.com/contact.html

Now the problem is if you don't fill out any info it will have an error message with all the things but not the selection. when I get the email it shows if the user has selected something out of the selection box but it doesn't have an error message and it still goes through even if you don't select something. could someone please help me with my PHP form validation.

 

PHP:

<?php
if(isset($_POST['email'])) {
     
    // CHANGE THE TWO LINES BELOW
    $email_to = "user@domain.com";
     
    $email_subject = "3DMark3t Contact:";
     
     
    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.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }
     
    // validation expected data exists
    if(!isset($_POST['first_name']) ||
        !isset($_POST['last_name']) ||
        !isset($_POST['email']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
if(isset($_POST['formGender']) )
{
  $errorMessage = "";
  $var3dmodels = $_POST['3DModels'];
  $vargraphic_design = $_POST['Graphic Design'];
  $varweb_design = $_POST['Web Design'];
  $vartutorials = $_POST['Tutorials'];
  $varreport = $_POST['Report'];
  $varrequests = $_POST['Requests'];
}
        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
$formGender = $_POST['formGender']; // 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.<br />';
  }
    $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.<br />';
  }
  if(!preg_match($string_exp,$last_name)) {
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />';
  }
  if(!isset($_POST['formGender']))
{
  $errorMessage .= "<li>You forgot to select your Gender!</li>";
}
  if(strlen($comments) < 2) {
    $error_message .= 'The Comments you entered do not appear to be valid.<br />';
  }
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "3DMark3t Contact:";
     
    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 .= "Select One: ".clean_string($formGender)."\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);  
?>

<!-- place your own success html below -->

Thank you for contacting us. We will be in touch with you very soon.
<meta http-equiv="refresh" content="3; URL=http://www.3dmark3t.com" />
<?php
}
die();
?>

 

HTML:

 

<html>
<head>
</head>
<body>
<form name="htmlform" method="post" action="php/html_form_send.php">
<table width="450px">
</tr>
<tr>
<td valign="top">
  <label for="first_name">First Name *</label>
</td>
<td valign="top">
  <input  type="text" name="first_name" maxlength="30" size="30">
</td>
</tr>

<tr>
<td valign="top">
  <label for="last_name">Last Name *</label>
</td>
<td valign="top">
  <input  type="text" name="last_name" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
  <label for="email">Email Address *</label>
</td>
<td valign="top">
  <input  type="text" name="email" maxlength="30" size="30">
</td>

</tr>
<tr>
<td valign="top">
  <label for="telephone">Telephone Number</label>
</td>
<td valign="top">
  <input  type="text" name="telephone" maxlength="30" size="30">
</td>
</tr>
<tr>
<td valign="top">
<label for="select">Select One *</label>
</td>
<td valign="top">
<select name="formGender">
  <option value="">Select...</option>
  <option value="3DModels">3DModels</option>
  <option value="Graphic Design">Graphic Design</option>
  <option value="Web Design">Web Design</option>
  <option value="Tutorials">Tutorials</option>
  <option value="Report">Report</option>
  <option value="Requests">Requests</option>
</select>
</td>
</tr>
<tr>
<td valign="top">
  <label for="comments">Comments *</label>
</td>
<td valign="top">
  <textarea  name="comments" maxlength="1000" cols="32.5" rows="6"></textarea>
</td>

</tr>
<tr>
<td colspan="2" style="text-align:center">
  <input type="submit" value="Submit">
</td>
</tr>
</table>
</form>
</body>
</html>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.