我制作了一个简单的"姓名和电子邮件"联系表单,我希望它在提交信息后重定向到"page2.html"。
我不能让它工作。
这是我为提交表单制作的html部分。我仍然不确定"name"部分代表什么,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>
<?
}
?>
如果脚本中有任何输出,则无法发送php重定向标头。或者将php部分更改为页面顶部,但可以在php中执行
header("location:page2.html"):
或者在php 中使用javascript重定向
echo '<script>document.location="page2.html"; </script>';
$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>'
}
表单中的name属性将为$_POST数组提供名称。例如,使用
<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()。上面的代码应该可以工作。
我在函数.php中使用了下面的代码,它正在运行
add_action( 'wpcf7_mail_sent', 'wpcf7_mail_sent_callback' );
function wpcf7_mail_sent_callback() {
header("location: https://www.example.com/thankyou/");
}