Jump to content

Contact Form Issues


lucasmland
 Share

Recommended Posts

I created a php contact form for our Technology department in a school district. I would like to make a particular field required or optional based on the choice made in a dropdown menu.So, if the user chooses the Hardware or Software category, I want the barcode field to be required. If they choose Username/Password, I want the barcode field to be optional.Here is the part of the code that is validating fields:

    function died($error) {	    // your error code can go here	    echo "<b>We are very sorry, but there were error(s) found with the form you submitted.</b><br /> <br />";	    echo $error."<br />";	    echo "Please go back and fix these errors.<br />";	    die();    }	// validation expected data exists    if(!isset($_POST['name']) ||	    !isset($_POST['location']) ||	    !isset($_POST['email']) ||	    !isset($_POST['machine']) ||	    !isset($_POST['problem'])) {	    died('We are sorry, but there appears to be a problem with the form you submitted.');	      }       $name = $_POST['name']; // required    $location = $_POST['location']; // required    $email_from = $_POST['email']; // required    $machine = $_POST['machine']; // required    $barcode = $_POST['barcode']; // not required    $problem = $_POST['problem']; // required    $issue = $_POST['issue'];    $error_message = "";  if(($issue) == '') {    $error_message .= 'Please select a category.<br />';}  if(($issue) == "Hardware" || "Software" && ($barcode) == '') {	  $error_message .= 'The Service Tag/Barcode you entered does not appear to be valid.<br />';       }    $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-z0-9, .'-]+$/";  if(!preg_match($string_exp,$name)) {    $error_message .= 'The Name you entered does not appear to be valid.<br />';  }  if(!preg_match($string_exp,$location)) {    $error_message .= 'The Location you entered does not appear to be valid.<br />';  }  if(!preg_match($string_exp,$machine)) {    $error_message .= 'The Machine you entered does not appear to be valid.<br />';  }  if(strlen($problem) < 2) {    $error_message .= 'The problem you entered does not appear to be valid.<br />';  }  if(strlen($error_message) >= 1) {    died($error_message);  }

The problem is that this always setting $error_message to 'The Service Tag/Barcode you entered does not appear to be valid.<br />'. So, when user selects Username/Password the error message is still preventing the script from sending the email.Any ideas?Lucas Land

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...