Last active
December 13, 2018 10:08
-
-
Save AaronTraas/9533041 to your computer and use it in GitHub Desktop.
Updated AJAX email mailer PHP script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// My modifications to mailer script from: | |
// http://blog.teamtreehouse.com/create-ajax-contact-form | |
// Added input sanitizing to prevent injection | |
// Only process POST reqeusts. | |
if ($_SERVER["REQUEST_METHOD"] == "POST") { | |
// Get the form fields and remove whitespace. | |
$name = strip_tags(trim($_POST["name"])); | |
$name = str_replace(array("\r","\n"),array(" "," "),$name); | |
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL); | |
$message = trim($_POST["message"]); | |
// Check that data was sent to the mailer. | |
if ( empty($name) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) { | |
// Set a 400 (bad request) response code and exit. | |
http_response_code(400); | |
echo "Oops! There was a problem with your submission. Please complete the form and try again."; | |
exit; | |
} | |
// Set the recipient email address. | |
// FIXME: Update this to your desired email address. | |
$recipient = "hello@example.com"; | |
// Set the email subject. | |
$subject = "New contact from $name"; | |
// Build the email content. | |
$email_content = "Name: $name\n"; | |
$email_content .= "Email: $email\n\n"; | |
$email_content .= "Message:\n$message\n"; | |
// Build the email headers. | |
$email_headers = "From: $name <$email>"; | |
// Send the email. | |
if (mail($recipient, $subject, $email_content, $email_headers)) { | |
// Set a 200 (okay) response code. | |
http_response_code(200); | |
echo "Thank You! Your message has been sent."; | |
} else { | |
// Set a 500 (internal server error) response code. | |
http_response_code(500); | |
echo "Oops! Something went wrong and we couldn't send your message."; | |
} | |
} else { | |
// Not a POST request, set a 403 (forbidden) response code. | |
http_response_code(403); | |
echo "There was a problem with your submission, please try again."; | |
} | |
?> |
I have a problem. If email have a dot in name (example: steve.steve@mail.com), you didn't get an email to this address, although the script reports successful transmission.
I would also recommend using this php mail library instead:
https://github.com/PHPMailer/PHPMailer
How can a clear the form data for select options
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks a lot