This question already has an answer here:
So I have this PHP file that is used to send a mail, I have the mail part working correctly and then the alert pops up just as I want it to. The issue is that I would like it to stay on the same page, or return to the page as it was, but the header redirection won't work because of the echo I did before.
This is the relevant code:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent = "From: $name
email: $email
Message: $message";
$recipient = 'email address';
$subject = 'Message from Website';
$mailheader = "From: $email
";
$captcha;
{
if (isset($_POST['g-recaptcha-response'])) {
$captcha = $_POST['g-recaptcha-response'];
}
if (!$captcha) {
echo '<script language="javascript">';
echo 'alert("Please check the Captcha")';
echo '</script>';
exit;
}
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=secretkey&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']);
if($response.success==false) {
echo '<h2>Please do not try and spam here.</h2>';
} else {
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo '<script language="javascript">';
echo 'alert("Your Message successfully sent, we will get back to you ASAP.")';
echo '</script>';
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
}
How can I change the last section of the code in order to either: redirect back to the page once the message alert has popped up, or just remain on the page once the message has been sent?
edit - hey guys, I got it to work the way that I want, I used the answer provided by Junaid.
I removed the header line and changed the javascript to the following:
echo '<script language="javascript">';
echo 'alert("Your Message successfully sent, we will get back to you ASAP.");';
echo 'window.location.href="index.html";';
echo '</script>';
</div>