My PHP contact form isn't working. When I try to submit a message, I am only given the error message "Error sending email!".
I'm just learning PHP, does the PHP file that contains my HTML need to have an opening "<?php" & a closing "?>"
anywhere?
Appreciate any help, tips & advice.
contactForm.php
<?php if(isset($_POST['cf_submit'])) {
$errors = array();
$success = null;
$required_fields['cf_name'] = 'You are required to enter your name.';
$required_fields['cf_email'] = 'You are required to enter your e-mail Address.';
$required_fields['cf_subject'] = 'You are required to enter a subject.';
$required_fields['cf_message'] = 'You are required to enter a message.';
foreach($_POST as $key => $value) {
if(array_key_exists($key, $required_fields)) {
if(trim($_POST[$key]) === '') {
$errors[$key] = $required_fields[$key];
}
}
}
if(empty($errors)) {
$to = "MY EMAIL ADDRESS";
$subject = $_POST['cf_subject'];
$name_field = $_POST['cf_name'];
$email_field = $_POST['cf_email'];
$message = $_POST['cf_message'];
$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";
$success = mail($to, $subject, $body);
}
if($success) {
echo "<p><strong>Thank you for getting in touch. Expect to hear back from us soon.</strong></p>";
} else {
echo "Error sending email!";
}
}
if(!empty($errors)) {
echo "<strong>Please check the following errors:</strong><br/><br/>";
echo "<ul>";
foreach($errors as $value) {
echo "<li>$value</li>";
}
echo "</ul>";
} ?>
HTML form
<form action="contactForm.php" method="post">
<!-- Name -->
<input name="cf_name" type="text" id="cf_name" class="cf_input" value="<?php if(isset($_POST['cf_name'])) echo $_POST['cf_name'];?>" placeholder="Name">
<!-- Email -->
<input name="cf_email" type="email" id="cf_email" class="cf_input" value="<?php if(isset($_POST['cf_email'])) echo $_POST['cf_email'];?>" placeholder="Email">
<!-- Subject -->
<input name="cf_subject" type="text" id="cf_subject" class="cf_input" value="<?php if(isset($_POST['cf_subject'])) echo $_POST['cf_subject'];?>" placeholder="Subject">
<!-- Message -->
<textarea name="cf_message" cols="45" rows="3" id="cf_message" value="<?php if(isset($_POST['cf_message'])) echo $_POST['cf_message'];?>" placeholder="Enter message here" class="cf_text"></textarea>
<!-- Submit -->
<button type="submit" name="cf_submit">Send Message</button>
</form>