Как перенаправить после отправки почты с PHPMailer для нескольких форм? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть форма Php и почтовая программа PHP для отправки электронной почты, но я хочу добавить перенаправление после успешной отправки почты.Пробовал несколько кодов из интернета, но ни один из них не работает.Также, как у меня есть 5-6 различных форм с одним и тем же Php почтовым программным обеспечением.поэтому, пожалуйста, предложите мне, как перенаправить их на разные страницы.Ниже я поделился кодом формы и кодом почтовой программы.

Форма ниже размещена на "https://www.dignitysoft.com/contact-us.php" и хочет, чтобы после успешной отправки по электронной почте она перенаправлялась на" https://www.dignitysoft.com/thank-you.php".

Попробовал несколько кодов из интернета, но ни один из них не сработал.

<form class="email_form" method="post">
                            <div class="row">
                                <div class="col-xs-6">
                                    <div class="form-group customised-formgroup">
                                      <span class="icon-user"></span>
                                        <input type="text" name="full_name" class="form-control" placeholder="Name">
                                    </div>
                                </div>
                                <div class="col-xs-6">
                                    <div class="form-group customised-formgroup">
                                        <span class="icon-envelope"></span>
                                        <input type="email" name="email" class="form-control" placeholder="Email">
                                    </div>
                                </div>
                                <div class="col-xs-6">
                                    <div class="form-group customised-formgroup">
                                        <span class="icon-telephone"></span>
                                        <input type="text" name="phone" class="form-control" placeholder="Phone">
                                    </div>
                                </div>
                                <div class="col-xs-6">
                                    <div class="form-group customised-formgroup">
                                        <span class="icon-laptop"></span>
                                        <input type="text" name="website" class="form-control" placeholder="Website">
                                    </div>
                                </div>
                                <div class="col-xs-12">
                                    <div class="form-group customised-formgroup">
                                        <span class="icon-bubble"></span>
                                        <textarea name="message" class="form-control" placeholder="Message"></textarea>
                                    </div>
                                </div>
                            </div>
                            <div class="g-recaptcha" data-sitekey="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX">
                            </div>
                            <div class="btn-wrapper">
                                <button type="submit" value="submit" class="btn btn-fill">Contact us now!</button>
                            </div>
                        </form> 
<?php

$name = trim($_POST['full_name']);
$email = trim($_POST['email']);
$phone = trim($_POST['phone']);
$website = trim($_POST['website']);
$_message = trim($_POST['message']);
if ($name == "") {
    $msg['err'] = "\n Full name can not be empty!";
    $msg['field'] = "full_name";
    $msg['code'] = FALSE;
} else if ($email == "") {
    $msg['err'] = "\n Email can not be empty!";
    $msg['field'] = "Email";
    $msg['field'] = "email";
    $msg['code'] = FALSE;
} else if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
    $msg['err'] = "\n Please put a valid email address!";
    $msg['field'] = "email";
    $msg['code'] = FALSE;
} else if ($phone == "") {
    $msg['err'] = "\n Phone number can not be empty!";
    $msg['field'] = "phone";
    $msg['code'] = FALSE;
} else if (!preg_match("/^\(?\+?([0-9]{1,4})\)?[-\. ]?(\d{3})[-\. ]?([0-9]{3})$/", trim($phone))) {
    $msg['err'] = "\n Please put a valid phone number!";
    $msg['field'] = "phone";
    $msg['code'] = FALSE;
}  else if ($_message == "") {
    $msg['err'] = "\n Message can not be empty!";
    $msg['field'] = "message";
    $msg['code'] = FALSE;
} else {
    $to = 'xyz@domain.com';
    $subject = 'Contact Query';
    $message = '<html><head></head><body>';
    $message .= '<p>Name: ' . $name . '</p>';
    $message .= '<p>Email: ' . $email . '</p>';
    $message .= '<p>Phone: ' . $phone . '</p>';
    $message .= '<p>Website: ' . $website . '</p>';
    $message .= '<p>Message: ' . $_message . '</p>';
    $message .= '</body></html>';

    $headers = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= 'From:  XYZ <xyz@domain.com>' . "\r\n";
    $headers .= 'cc: ' . "\r\n";
    $headers .= 'bcc: ' . "\r\n";
    mail($to, $subject, $message, $headers, '-f xyz@domain.com');

    $msg['success'] = "\n Your Email has been sent successfully";
    $msg['code'] = TRUE;
}
echo json_encode($msg);

Я просто хочу, чтобы все формы перенаправляли разные страницы спасибо для отслеживания цели.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

Вы можете использовать расположение заголовка для перенаправления в php и использовать строку запроса для отправки данных обратно

 if(mail()) {
          header('Location: http://example.com?success='.$msg['success']);
        } else {
          echo 'Message was not sent.';
        }

На странице Спасибо просто используйте код ниже, чтобы получить значение сообщения

if (isset($_GET['success'])) {    
   echo $_GET['success'];
}

Вы также можете использовать сеансы для отправки данных через php-страницы.

0 голосов
/ 19 сентября 2019

В PHP вы можете перенаправить так:

header("Location: thank-you.php");

В Javascript вы можете перенаправить так:

window.location.href = '/thank-you.php';

Если вы хотите что-то сделать на странице после того, как электронная почтаотправлено, но перед перенаправлением нужно перенаправить через JS.В противном случае вы можете перенаправить через PHP.Поскольку у вас разные формы и вы хотите перенаправить их на разные страницы с благодарностями, вы можете указать это в бэкэнде в зависимости от типа отправленной формы.

...