使用PHPMailer发送多种形式的邮件后如何重定向?



我有一个 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' . "rn";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "rn";
$headers .= 'From:  XYZ <xyz@domain.com>' . "rn";
$headers .= 'cc: ' . "rn";
$headers .= 'bcc: ' . "rn";
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);

我只是希望所有表单重定向不同的感谢页面以进行目标跟踪。

在 PHP 中,您可以像这样重定向:

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

在Javascript中,你可以像这样重定向:

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

如果您想在发送电子邮件后但在重定向之前在页面上执行某些操作,则需要通过 JS 重定向。否则,您可以通过 PHP 重定向。由于您有不同的表单,并且想要重定向到不同的感谢页面,因此您可以根据发送的表单类型在后端指定该表单。

您可以使用标头位置在 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 页面发送数据。

最新更新