webguync Posted January 31, 2011 Share Posted January 31, 2011 I need some assistance with an error I get when trying to submit a form to my email address. the error is this: Warning: mail() [function.mail]: SMTP server response: 555 syntax error (#5.5.4) in E:\Contact\process.php on line 74 Sorry, unexpected error. Please try again later the form code is <form id="form" action="process.php" method="post" name="ContactForm"> <label for="Name">Name</label> <input type="text" name="name" id="name" /> <label for="email">E-mail</label> <input type="text" name="email" id="email" /> <label for="website">Website</label> <input type="text" name="website" id="website" /> <label for="message">Message</label> <textarea class="resizable" name="comment"> </textarea> <input type="submit" name="submit" id="submit" value="Submit"> </form> and the process code [code=php:0] <?php //Retrieve form data. //GET - user submitted data using AJAX //POST - in case user does not support javascript, we'll use POST instead $name = ($_GET['name']) ? $_GET['name'] : $_POST['name']; $email = ($_GET['email']) ?$_GET['email'] : $_POST['email']; $website = ($_GET['website']) ?$_GET['website'] : $_POST['website']; $comment = ($_GET['comment']) ?$_GET['comment'] : $_POST['comment']; //flag to indicate which method it uses. If POST set it to 1 if ($_POST) $post=1; //Simple server side validation for POST data, of course, you should validate the email if (!$name) $errors[count($errors)] = 'Please enter your name.'; if (!$email) $errors[count($errors)] = 'Please enter your email.'; if (!$comment) $errors[count($errors)] = 'Please enter your comment.'; //if the errors array is empty, send the mail if (!$errors) { //recipient $to = 'My Name <email@gmail.com>'; //sender $from = $name . ' <' . $email . '>'; //subject and the html message $subject = 'Comment from ' . $name; $message = ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head></head> <body> <table> <tr><td>Name</td><td>' . $name . '</td></tr> <tr><td>Email</td><td>' . $email . '</td></tr> <tr><td>Website</td><td>' . $website . '</td></tr> <tr><td>Comment</td><td>' . nl2br($comment) . '</td></tr> </table> </body> </html>'; //send the mail $result = sendmail($to, $subject, $message, $from); //if POST was used, display the message straight away if ($_POST) { if ($result) echo 'Thank you! I have received your message.'; else echo 'Sorry, unexpected error. Please try again later'; //else if GET was used, return the boolean value so that //ajax script can react accordingly //1 means success, 0 means failed } else { echo $result; } //if the errors array has values } else { //display the errors message for ($i=0; $i<count($errors); $i++) echo $errors[$i] . '<br/>'; echo '<a href="form.php">Back</a>'; exit; } //Simple mail function with HTML header function sendmail($to, $subject, $message, $from) { $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; $headers .= 'From: ' . $from . "\r\n"; $result = mail($to,$subject,$message,$headers); if ($result) return 1; else return 0; } ?> [/code] Quote Link to comment https://forums.phpfreaks.com/topic/226293-need-help-with-syntax-error-for-form-process/ Share on other sites More sharing options...
wigpip Posted February 1, 2011 Share Posted February 1, 2011 hey there it seems the problem is around if ($result) return 1; else return 0; the else condition needs to be isolated as such in curly brackets if ($result) { return 1; } else { return 0; } anyways i tested your script on my server and it worked fine other than that it's a nice little script for sending HTML web emails Quote Link to comment https://forums.phpfreaks.com/topic/226293-need-help-with-syntax-error-for-form-process/#findComment-1168202 Share on other sites More sharing options...
kenrbnsn Posted February 1, 2011 Share Posted February 1, 2011 An "if" block doesn't need to be surrounded by curly braces "{ }" if there is only one statement in the block, so the OP's original code is fine. Ken Quote Link to comment https://forums.phpfreaks.com/topic/226293-need-help-with-syntax-error-for-form-process/#findComment-1168203 Share on other sites More sharing options...
wigpip Posted February 1, 2011 Share Posted February 1, 2011 true true, well anyway as stated to clarify i tested code as supplied and it worked fine, so as the error dictates the server doesn't seem to like the mail function, would suggest contacting your server administrator regarding their php settings around mail functions Quote Link to comment https://forums.phpfreaks.com/topic/226293-need-help-with-syntax-error-for-form-process/#findComment-1168214 Share on other sites More sharing options...
webguync Posted February 1, 2011 Author Share Posted February 1, 2011 thanks, I think it is a php setting too. I will check on that. Quote Link to comment https://forums.phpfreaks.com/topic/226293-need-help-with-syntax-error-for-form-process/#findComment-1168343 Share on other sites More sharing options...
ManiacDan Posted February 1, 2011 Share Posted February 1, 2011 There are no syntax errors in the code you posted. Are you sure you're looking at the right file? There's a filename in the error message, is that the one you're looking at? -Dan Quote Link to comment https://forums.phpfreaks.com/topic/226293-need-help-with-syntax-error-for-form-process/#findComment-1168344 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.