Contact Form not working

So I have set this php page up to authenticate etc. but it doesn’t seem to be actually sending the email.

Any help would be much appreciated.

[php]

<?php if(isset($_POST['email'])) { // CHANGE THE TWO LINES BELOW $email_to = "[email protected]"; $email_subject = "Mexico Contact"; function died($error) { echo "We are very sorry, but there were error(s) found with the form you submitted. "; echo "These errors appear below.

"; echo $error."

"; echo "Please go back and fix these errors.

"; die(); } // validation expected data exists if(!isset($_POST['message']) || !isset($_POST['name']) || !isset($_POST['email'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $message = $_POST['message']; // required $name = $_POST['name']; // required $email = $_POST['email']; // required $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email)) { $error_message .= 'The email address you entered does not appear to be valid.
'; } $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$name)) { $error_message .= 'The name you entered does not appear to be valid.
'; } if(strlen($message) < 2) { $error_message .= 'The message you entered do not appear to be valid.
'; } 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 .= "Message: ".clean_string($message)."\n"; $email_message .= "Name: ".clean_string($name)."\n"; $email_message .= "Email: ".clean_string($email)."\n"; // create email headers $headers = 'From: '.$email."\r\n". 'Reply-To: '.$email ."\r\n" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); ?>

Thank you for contacting us. We will be in touch with you very soon.

<?php } die(); ?>

[/php]

[php]@mail($email_to, $email_subject, $email_message, $headers);[/php]

First thing, NEVER suppress errors or warnings when you are trying to debug!

Remove the @ symbol, that will cause an issue regardless. Place the mail function into an if statement, it will at least tell you if it was sent. Do you have a mail server setup (ie is this on an actual server or localhost)?

Another thing, the actual function does not go in your if statement. You call the function in the if.

Also, once you remove the error suppression, the code does not have the HTML code to display
the results. Unless you only showed the PHP sections…

And, remember, PHP is done SERVER-side, so after sending the email, you still have to output your
CLIENT-side code such as HTML, etc…

So, you still need to set up the page as a normal HTML page to show the success message.
Here is a sample to peek at. (Look at the last code sample, it is about what you need…)
http://stackoverflow.com/questions/20018775/php-send-mail-and-show-success-message-in-the-same-page

Sponsor our Newsletter | Privacy Policy | Terms of Service