0

我制作了一个简单的“姓名和电子邮件”联系表格,我希望在提交信息后将其重定向到“page2.html”。

我无法让它工作。

这是我为提交表单制作的 html 部分。我仍然不确定“名称”部分代表什么,id 部分(带有破折号)指的是 CSS 样式。但无论如何,这就是我制作联系人“姓名和电子邮件”表格的方式。

<form method="post" action="submission.php" name="contactform" id="contact-form">
        <fieldset>
        <label for=name accesskey=U><span class="required">*</span> Name</label>
        <input name="name" type="text" id="name" size="30" value="" /> 
        <br />
        <label for=email accesskey=E><span class="required">*</span> Email</label>
        <input name="email" type="text" id="email" size="30" value="" />
        <br />
        <input type="submit" class="submit" id="submit-button" value="Submit" />
        </fieldset>        
</form>

并且 php 部分被回收,我尝试在最后一行输入带有重定向的标题,但它不起作用,最好的方法是在浏览器中打开一个空白页面,打印出我在表单中输入的信息。

我希望在提交信息后重定向表单,所以......提前感谢您的帮助:D

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jqueryui", "1.5.2");</script>
<? 
if($_POST['name']!="" ){


    $headers    = "From: Webmaster";
    $message    = 
  strtoupper($_POST['name'])."
".strtoupper($_POST['email'])."
";
    echo str_replace("\n","<br />", $message);
    $headers2   = "From: Sender Name <email@gmail.com>\nContent-Type:     text/plain; charset=UTF-8; format=flowed\nMIME-Version: 1.0\nContent-Transfer-Encoding:     8bit\nX-Mailer: PHP\n";
    $message2   = "Message
";

    mail("webmaster@gmail.com", "Subject", $message, $headers);
    mail("$_POST[email]", "Subject", $message2, $headers2);

    $myFile = "submissions.txt";
    $fh = fopen($myFile, 'a') or die("can't open file");
    $stringData =     "$_POST[name]*$_POST[email]*".$_SERVER['REMOTE_ADDR']."*".date("d-m-Y H:i")."
";
    fwrite($fh, $stringData);
    fclose($fh);

} else {
    echo "You didnt enter anything";
    ?>
    <script language="javascript">
    alert("You didnt enter anything");
    </script>
    <?
}
?>
4

4 回答 4

0

表单中的 name 属性将给 $_POST 数组是 name。例如,使用

<input type="text" name="awesometext"/>

在带有 method="post" 的表单中,将使该文本字段的值可以通过您在表单操作中定义的 php 脚本中的 $_POST['awesometext'] 访问。

如果在发送电子邮件后您想使用 header() 将用户重定向到另一个页面,则在此之前的页面上必须不生成任何输出。摆脱所有回声和 html 输出,因此删除您在开始时拥有的 html。如果你想使用 header(),你可能只有没有输出的 php 代码。

然后你可以使用header('Location:somepage.php');指向somepage.php。

您的代码将是:

<?php 
if($_POST['name']!="" ){


$headers    = "From: Webmaster";
$message    = 
strtoupper($_POST['name'])."
".strtoupper($_POST['email'])."
";
echo str_replace("\n","<br />", $message);
$headers2   = "From: Sender Name <email@gmail.com>\nContent-Type:     text/plain; charset=UTF-8; format=flowed\nMIME-Version: 1.0\nContent-Transfer-Encoding:     8bit\nX-Mailer: PHP\n";
$message2   = "Message
";

mail("webmaster@gmail.com", "Subject", $message, $headers);
mail("$_POST[email]", "Subject", $message2, $headers2);

$myFile = "submissions.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData =     "$_POST[name]*$_POST[email]*".$_SERVER['REMOTE_ADDR']."*".date("d-m-Y H:i")."
";
fwrite($fh, $stringData);
fclose($fh);

//header here
header('Location:somepage.php');

} else {
echo "You didnt enter anything";
?>

header() 需要在生成任何输出之前调用。上面的代码应该可以工作。

于 2012-07-24T09:27:50.797 回答
0
$a = mail("webmaster@gmail.com", "Subject", $message, $headers);
$b = mail("$_POST[email]", "Subject", $message2, $headers2);

if($a && $b)
{
  echo '<script>document.location="page2.html"; </script>'
}
于 2012-07-24T09:28:24.443 回答
0

如果脚本中有任何输出,则无法发送 php 重定向标头。要么将您的 php 部分更改为页面顶部,但您可以在 php 中进行

header("location:page2.html"):

或在 php 中使用 javascript 重定向

echo '<script>document.location="page2.html"; </script>';
于 2012-07-24T09:28:52.610 回答
0

我在function.php中使用下面的代码并且它正在工作

add_action( 'wpcf7_mail_sent', 'wpcf7_mail_sent_callback' );
function wpcf7_mail_sent_callback() {
     header("location: https://www.example.com/thankyou/");
}
于 2021-09-03T14:05:48.717 回答