I've been writing some code to send emails from a site. The base code worked perfectly, I then added some small bits for checking the inputted data is right and it's now just displaying that the page isn't working. This is the first time I've used PHP so am quite new to it all, although I can't see any errors with the code?
<?php
if(isset($_POST['submitButton'])){
function errorMessage($error) {
echo 'Apologies but the request has not been successful<br/>';
echo 'Please see below, amend and then resubmit<br/><ul>';
echo $error . '</ul>';
die();
}
$error_message = ""; // set the error message as empty
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; // string to look for
$string_exp = "/^[A-Za-z .'-]+$/"; // string to look for
$contact_exp = '/^[0-9]/';
$subject = " Request"; // subject of their email to me
$subject2 = "Copy of your Request"; // subject of the email back to them
$to = "myemail"; // this is my Email address
$from = $_POST['emailAddressField']; // this is the requesters Email address
if (!preg_match($email_exp,$from)) {
$error_message . = '<li>The Email Address you entered does not appear to be valid.</li>';
}
$first_name = $_POST['firstNameField']; // this is their first name
if (!preg_match($string_exp,$first_name)) {
$error_message . = '<li>The first name you entered does not appear to be valid.</li>';
}
$last_name = $_POST['surnameField']; // this is their surname
if (!preg_match($string_exp,$last_name)) {
$error_message . = '<li>The surname you entered does not appear to be valid.</li>';
}
$contact_number = $_POST['contactNumberField']; // this is their contact number
if (!preg_match($contact_exp,$contact_number)){
$error_message . = '<li>The contact number you entered does not appear to be valid.</li>';
}
$details_field = $_POST['detailsField']; // this is the details
if (strlen($details_field) < 10) {
$error_message . = '<li>Please give more details, at least 10 characters.</li>';
}
$message = $first_name . " " . $last_name . " (" . $contact_number . ") wrote the following:" . "
" . $details_field; // message of email to me
$message2 = "Here is a copy of your request " . $first_name . " (" . $contact_number . ").
" . $details_field . "
Many thanks"; // message of email to requester
$headers = "From:" . $from; // message of email header to me
$headers2 = "From:" . $to; // message of email header to requester
// if there have been errors, then display error message and end
if(strlen($error_message) > 0) {
errorMessage($error_message);
}
// send the emails
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Request sent. Thank you " . $first_name . ", I will contact you shortly.";
}
?>
Works perfectly:
<?php
if(isset($_POST['submitButton'])){
$subject = "Request"; // subject of their email to me
$subject2 = "Copy of your Request"; // subject of the email back to them
$to = "myemail"; // this is my Email address
$from = $_POST['emailAddressField']; // this is the requesters Email address
$first_name = $_POST['firstNameField']; // this is their first name
$last_name = $_POST['surnameField']; // this is their surname
$contact_number = $_POST['contactNumberField']; // this is their contact number
$details_field = $_POST['detailsField']; // this is the details
$message = $first_name . " " . $last_name . " (" . $contact_number . ") wrote the following:" . "
" . $details_field; // message of email to me
$message2 = "Here is a copy of your request " . $first_name . " (" . $contact_number . ").
" . $details_field . "
Many thanks"; // message of email to requester
$headers = "From:" . $from; // message of email header to me
$headers2 = "From:" . $to; // message of email header to requester
// send the emails
mail($to,$subject,$message,$headers);
mail($from,$subject2,$message2,$headers2); // sends a copy of the message to the sender
echo "Request sent. Thank you " . $first_name . ", I will contact you shortly.";
}
?>
Can anyone help me with finding this annoying error?