Oscar11 Posted January 29, 2014 Share Posted January 29, 2014 Am learning to understand this language. I have an error message of Parse error: parse error, unexpected T_IF, expecting '{' in /tier-11/pwpstore4/48/tfeethowsthis/htdocs/send_form_emailtest1.php on line 12 The user must fill in their name and email address in order to submit the form. Many thanks <?php if(isset($_POST['email'])) { // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "xxxxx@xxxxxxx"; $email_subject = "Your email subject line"; function died($error) if (empty($_REQUEST[$Name])) { echo 'Please go back and fill out ' . $fieldName . "<br>\n"; // validation expected data exists if(empty($_POST['name']) || empty($_POST['email']) || !isset($_POST['comments'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } if ((!name) || (!email) || (comments)) { $errorMsg = 'Please make sure you have filled in the required fields:<br /><br />'; } if (!$name) { $errorMsg = 'Please fill in your Full Name<br />'; } if (!$email) { $errorMsg = 'Please fill in your email address<br />'; } } [php] Quote Link to comment https://forums.phpfreaks.com/topic/285764-why-wont-my-form-work/ Share on other sites More sharing options...
Ch0cu3r Posted January 29, 2014 Share Posted January 29, 2014 (edited) The code you posted is incomplete. Is that all your code? Also paste code into tags. Edited January 29, 2014 by Ch0cu3r Quote Link to comment https://forums.phpfreaks.com/topic/285764-why-wont-my-form-work/#findComment-1466925 Share on other sites More sharing options...
cyberRobot Posted January 29, 2014 Share Posted January 29, 2014 Assuming that's your complete code, you didn't close the first if statement. Also, the died() function is incomplete. <?php if(isset($_POST['email'])) { // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "xxxxx@xxxxxxx"; $email_subject = "Your email subject line"; function died($error) { //do function stuff here } if (empty($_REQUEST[$Name])) { echo 'Please go back and fill out ' . $fieldName . "<br>\n"; // validation expected data exists if(empty($_POST['name']) || empty($_POST['email']) || !isset($_POST['comments'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } if ((!name) || (!email) || (comments)) { $errorMsg = 'Please make sure you have filled in the required fields:<br /><br />'; } if (!$name) { $errorMsg = 'Please fill in your Full Name<br />'; } if (!$email) { $errorMsg = 'Please fill in your email address<br />'; } } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/285764-why-wont-my-form-work/#findComment-1466926 Share on other sites More sharing options...
cyberRobot Posted January 29, 2014 Share Posted January 29, 2014 It should be mentioned that there are a number of other errors, including the missing dollar signs here: if ((!name) || (!email) || (comments)) { Of course, you'll also need to define those variables before the if statement will work. Quote Link to comment https://forums.phpfreaks.com/topic/285764-why-wont-my-form-work/#findComment-1466927 Share on other sites More sharing options...
Oscar11 Posted January 29, 2014 Author Share Posted January 29, 2014 I have looked at your comments and done some research and now my form is displaying the 'some fields are required' message but all required fields are complete. Ideally I would have a small error box appear on the form page if the user submits but leaves a required field blank? What do you mean by paste the code in [ ] tags? <?php if(isset($_POST['email'])) // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "xxxxx@xxxxxxx"; $email_subject = "Your email subject line"; 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(); } if (empty($_REQUEST[$Name])) { echo 'Please go back and fill out ' . $fieldName . "<br>\n"; } // validation expected data exists if(!isset($_POST['name'])) !isset($_POST['email']) || died('We are sorry, but there appears to be a problem with the form you submitted.'); //required fields $first_name = $_POST['name']; // required $email_from = $_POST['email']; // required//error message $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$name)) { $error_message .= 'The Name you entered does not appear to be valid.<br />';} if(!preg_match($email_exp,$email_from)) { $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; } if(strlen($error_message) > 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 .= "Name: ".clean_string($name)."\n"; $email_message .= "Email: ".clean_string($email_from)."\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);?> Quote Link to comment https://forums.phpfreaks.com/topic/285764-why-wont-my-form-work/#findComment-1466933 Share on other sites More sharing options...
cyberRobot Posted January 29, 2014 Share Posted January 29, 2014 (edited) What do you mean by paste the code in [ ] tags? It just mean that you surround code blocks with your code here . Using these tags puts your code in a little box and makes your code (and post) easier to follow. Edited January 29, 2014 by cyberRobot Quote Link to comment https://forums.phpfreaks.com/topic/285764-why-wont-my-form-work/#findComment-1466941 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.