Как перенаправить после того, как письмо было отправлено - PullRequest
0 голосов
/ 15 января 2019

Я очень новичок в PHP, однако мне удалось настроить систему электронной почты из контактной формы на моем веб-сайте. У меня проблема в том, что после того, как письмо отправлено, я хочу скрыть форму и отобразить сообщение «Спасибо за письмо».

Я пытался найти решения, но единственный ответ, который я смог найти, - это использовать этот код: header ("Location: sentmail.html"); Отсюда я перенаправляю его на другую HTML-страницу, идентичную странице контакта с удаленной формой. Я чувствую, что это плохая практика, так как для этого потребуется много страниц дублирования, сколько контактных форм размещено на сайте.

Есть ли способ отобразить «спасибо за ваше сообщение», как только письмо было отправлено, а не перенаправить на страницу sentmail.html.

Спасибо, что нашли время прочитать.

`<?php
extract($_POST);

if(isset($_POST['submit']))
$name = $_POST['first_name'];
$email = $_POST['email_address'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$mailTo = "jamie@sharpsdigital.co.uk";
$headers = "From: MLS systems Contact Form ";
$txt = "$name has sent you an email from the address. " .$email. "\n\n With the message of.\n\n" .$message. " \n\n This is an automated   response from the contact form, Please click on the blue email address above to respond." ;
mail ($mailTo, $subject, $txt, $headers);
header("Location: sentmail.html");
?>`

Это код PHP, а под кодом формы

<section class="free-appoinment-area">
    <div class="container">
        <form action="sendmail.php" method="post" class="free-appoinment-form">
            <div class="row">
                <div class="col-md-12">
                    <div class="sec-title text-left">
                        <h1>Any queries</h1><span class="decor"></span>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <div class="input-field">
                                <input name="first_name" placeholder="Your Name*" type="text">
                                <div class="icon-holder">
                                    <span class="flaticon-people"></span>
                                </div>
                            </div>
                        </div>
                        <div class="col-md-12">
                            <div class="input-field">
                                <input name="subject" placeholder="Your Subject" type="text">
                                <div class="icon-holder">
                                    <span class="flaticon-people"></span>
                                </div>
                            </div>
                        </div>
                        <div class="col-md-12">
                            <div class="input-field">
                                <input name="email_address" placeholder="Email Address*" type="text">
                                <div class="icon-holder">
                                    <span class="flaticon-note"></span>
                                </div>
                            </div>
                        </div>
                        <div class="col-md-12">
                            <div class="input-field">
                                <textarea name="message" placeholder="Your Message..."></textarea>
                                <div class="icon-holder comment">
                                    <span class="flaticon-social-1"></span>
                                </div>
                            </div>
                        </div>
                        <div class="col-md-12">
                             <button type="submit" data-type="submit" name="submit" value="submit">Submit</button>
                        </div>
                    </div>
                </div>
            </div>
        </form>
    </div>
</section>

Ответы [ 2 ]

0 голосов
/ 15 января 2019

вы можете сделать это с помощью php и css.

php использует if else оператор, как показано ниже

    if(isset($_POST['submit'])){
    $name = $_POST['first_name'];
    $email = $_POST['email_address'];
    $subject = $_POST['subject'];
    $message = $_POST['message'];
    $mailTo = "jamie@sharpsdigital.co.uk";
    $headers = "From: MLS systems Contact Form ";
    $txt = "$name has sent you an email from the address. " .$email. "\n\n With the message of.\n\n" .$message. " \n\n This is an automated   response from the contact form, Please click on the blue email address above to respond." ;
    if(mail ($mailTo, $subject, $txt, $headers)){
 echo "Thanks for your contact.";
}

}else{ ?>

your form goes here

<?php }?>
0 голосов
/ 15 января 2019

Существуют сотни возможностей, но, проще говоря, вы можете получить возвращаемое значение mail() и отобразить содержимое в соответствии с этим:

$success = mail('...');

form.php

if($success) {
    echo 'Thank you!';
} else {
    // output form here
}

Конечно, вы можете просто установить флаг в true и в вашем обработчике форм, но это слишком широко, чтобы объяснить здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...