I would like to have users fill out my contact form, hit submit and then be redirected to my success.html page that thanks them for their submission. Everything worked great when I did this on a local Apache server while I was developing my site. Now that I put it up on the web, hitting submit no longer redirects to the success.html page, instead it takes them straight back to index.php which I don't want. I tried using the php headers and I also tried using JS with window.location to redirect users as suggested in similar Stack Overflow questions but neither worked. Can someone help me here? Thank- you!
<?php
if (empty($_POST) === false) {
//errors array
$errors = array();
//message variables
$name = $_POST['form-name'];
$email = $_POST['form-email'];
$message = 'This is a message from: ' . $name . '.' . "
" . 'Please send your reply to: ' . $email . '. ' . "
" . $_POST['form-msg'];
$headers = 'From: ' . $email;
//Validation for name, email, and message fields
if (empty($name) === true || empty($email) === true || empty($message) === true) {
$errors[] = 'Name, email, and message are required!';
} else {
if (filter_var($email, FILTER_VALIDATE_EMAIL) === false){
$errors[] = 'That\'s not a valid email address.';
}
if (ctype_alpha(str_replace(' ', '', $name)) === false) {
$errors[] = 'Name must only contain letters!';
}
}
if (empty ($errors) === true) {
//send email
mail('myemail@gmail.com', 'Contact Form Submission', $message, $headers);
//redirect user
header('Location: http:/www.mysite.com/success.html');
exit();
}
}
?>
<?php
if (isset($_GET['sent']) === true) {
header('Location: success.html');
} else {
if (empty($errors) === false) {
echo '<ul>';
foreach($errors as $error) {
echo '<li>', $error, '<li>';
}
}
?>
<form method='post' action='success.html'>
<label for='form-name'>Name: </label>
<input type='text' name='form-name' id='form-name' placeholder="Type your name..." required <?php if (isset($_POST[ 'form-name'])===true) { echo 'value="', strip_tags($_POST[ 'form-name']), '"';}?>>
<br>
<label for='form-email'>Email: </label>
<input type='email' name='form-email' id='form-email' placeholder="Type your email..." required <?php if (isset($_POST[ 'form-email'])===true) { echo 'value="', strip_tags($_POST[ 'form-email']), '"';}?>>
<br>
<label for='form-msg'>Msg: </label>
<textarea type='text' name='form-msg' id='form-msg' placeholder="You get the drift..." required <?php if (isset($_POST[ 'form-msg'])===true) { echo 'value="', strip_tags($_POST[ 'form-msg']), '"';}?>></textarea>
<br>
<input type='submit' value='Submit' id='submit-button'><br>
</form>
<?php
}
?>