отображать сообщение успеха с очисткой данных сообщения и перенаправление на одной странице

-4

У меня есть одна веб-страница. У меня есть контактная форма. Я хочу, чтобы после отправки формы он должен перенаправить на ту же страницу и отобразить сообщение об успешном завершении (сообщение должно затухать через несколько секунд), а данные сообщения должны быть четкими. В форме я также проверяю код чека и отправляю почту.

if(md5($_POST['vcode']).'a4xn' == $_COOKIE['tntcon'])
{
$msg="message";

$to = 'test@gmail.com';
$subject = 'subject';
$message = $msg;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .="From: ".$_POST['email']." \r\n";

$mail=mail($to, $subject, $message, $headers);
if($mail==true)
{
echo '<script>$("#deletesuccess").fadeIn();$("#deletesuccess").delay(4000).fadeOut();window.location="index.php";</script>';
//here i want to redirect on same page with clear post data and display success message.
}
}
else
{
echo '<script type="text/javascript">document.getElementById("disp_wrong_code").style.display="inline";</script>';
// This is verification code error.
}

Это настраиваемая страница php.

спросил(а) 2020-04-04T00:51:49+03:00 3 месяца назад
1
Решение
69

Для перенаправления вы можете использовать функцию header. Для хранения данных между загрузками страниц используется $_SESSION. Некоторые упрощенные примеры:

session_start();
if ($can_do_post)
{
// do some actions here
$mail=mail($to, $subject, $message, $headers);

if ($mail==true) {
// set SESSION to know that it success result
$_SESSION['form_filled'] = true;
// redirect to the same page
header("Location: /script.php");
die();
}
}
else
{
// no post data here
// check session:
if (isset($_SESSION['form_filled']) && $_SESSION['form_filled']) {
echo '<script>$("#deletesuccess").fadeIn();$("#deletesuccess").delay(4000).fadeOut();window.location="index.php";</script>';
}
}

ответил(а) 2020-04-04T01:05:10.483316+03:00 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема