簡體   English   中英

提交表單后重定向到另一個頁面?

[英]Redirect to another page after submitting a form?

提交表單后,我試圖將用戶重定向到另一個頁面。 該表格效果很好。 如果強制用戶輸入必填字段,則除非這些字段中的每一個均完整,否則不會提交。 然后,提交表單並刷新。 但是我想將用戶重定向到另一個頁面,而不是簡單地刷新頁面。

我的PHP代碼如下!

<?php

$recipients = 'dre@myemail.com';
//$recipients = '#';

try {
require './phpmailer/PHPMailerAutoload.php';

preg_match_all("/([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]   {2,6}(?:\.[a-z]{2})?)/", $recipients, $addresses, PREG_OFFSET_CAPTURE);

if (!count($addresses[0])) {
    die('MF001');
}

if (preg_match('/^(127\.|192\.168\.)/', $_SERVER['REMOTE_ADDR'])) {
    die('MF002');
}

$template = file_get_contents('rd-mailform1.tpl');

if (isset($_POST['form-type'])) {
    switch ($_POST['form-type']){
        case 'registration':
            $subject = 'New Registration';
            break;
        case 'subscribe':
            $subject = 'Subscribe request';
            break;
        case 'order':
            $subject = 'Order request';
            break;
        default:
            $subject = 'A message from your site visitor';
            break;
    }
}else{
    die('MF004');
}

if (isset($_POST['email'])) {
    $template = str_replace(
        ["<!-- #{FromState} -->", "<!-- #{FromEmail} -->"],
        ["Email:", $_POST['email']],
        $template);
}else{
    die('MF003');
}

if (isset($_POST['message'])) {
    $template = str_replace(
        ["<!-- #{MessageState} -->", "<!-- #{MessageDescription} -->"],
        ["Message:", $_POST['message']],
        $template);
}

preg_match("/(<!-- #{BeginInfo} -->)(.|\n)+(<!-- #{EndInfo} -->)/", $template, $tmp, PREG_OFFSET_CAPTURE);
foreach ($_POST as $key => $value) {
    if ($key != "email" && $key != "message" && $key != "form-type" && !empty($value)){
        $info = str_replace(
            ["<!-- #{BeginInfo} -->", "<!-- #{InfoState} -->", "<!-- #{InfoDescription} -->"],
            ["", ucfirst($key) . ':', $value],
            $tmp[0][0]);

        $template = str_replace("<!-- #{EndInfo} -->", $info, $template);
    }
}

$template = str_replace(
    ["<!-- #{Subject} -->", "<!-- #{SiteName} -->"],
    [$subject, $_SERVER['SERVER_NAME']],
    $template);

$mail = new PHPMailer();
$mail->From = $_SERVER['SERVER_ADDR'];
$mail->FromName = $_SERVER['SERVER_NAME'];

foreach ($addresses[0] as $key => $value) {
    $mail->addAddress($value[0]);
}

$mail->CharSet = 'utf-8';
$mail->Subject = $subject;
$mail->MsgHTML($template);

if (isset($_FILES['attachment'])) {
    foreach ($_FILES['attachment']['error'] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $mail->AddAttachment($_FILES['attachment']['tmp_name'][$key],    $_FILES['Attachment']['name'][$key]);
        }
    }
}

$mail->send();

die('MF000');
} catch (phpmailerException $e) {
die('MF254');
} catch (Exception $e) {
die('MF255');
}

?>

您可以使用標題重定向頁面。 在確定表單操作已成功執行的任何地方,添加以下內容:

header('Location: path/to/your/file.php');  //Could also be an external or internal URL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM