Форма всплывающего сообщения - PullRequest
0 голосов
/ 26 декабря 2011

Я использую этот процессор форм на моем сайте.В настоящее время, когда пользователь нажимает кнопку «Отправить», он переносится на новую страницу для отображения либо сообщения об ошибке, либо подтверждения того, что форма была отправлена.Я хочу, чтобы сообщения об ошибках и подтверждениях отображались в виде всплывающих окон на той же странице, что и сама форма.Буду признателен за любую помощь в этом.

<?php
/* Set e-mail recipient */
$myemail  = "mail@mail.com;

/* Check all form inputs using check_input function */

$email    = check_input($_POST['email']);


/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
    show_error("E-mail address not valid");
}



/* Let's prepare the message for the e-mail */
$message = "

Someeone has signed up to your newletter.


E-mail: $email


Regards,

";

/* Send the message using mail() function */
mail($myemail, $subject, $message);

/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();

/* Functions we used */
function check_input($data, $problem='')
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem && strlen($data) == 0)
    {
        show_error($problem);
    }
    return $data;
}

function show_error($myError)
{
?>
    <html>
    <body>

    <b>Please correct the following error:</b><br />
    <?php echo $myError; ?>

    </body>
    </html>
<?php
exit();
}
?>

1 Ответ

1 голос
/ 26 декабря 2011

Попробуйте что-то вроде:

Процессор форм

/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
    $_SESSION['form_error'] = "E-mail address not valid";
    header('location:' . $_SERVER['HTTP_REFERER']);
    exit;
}

Страница форм

if(isset($_SESSION['form_error'])) {
    echo '<script>alert("' . addslashes($_SESSION['form_error']) . '");</script>';
    unset($_SESSION['form_error']);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...