我有HTML表单,只通过PHP将填充的表单发送到电子邮件。我需要先将该信息发送到评论页面,以便客户检查所有填写的信息,让他们检查并再次提交,然后才将该信息发送到电子邮件。怎么做?
以下是代码:
<?php
// Please specify your Mail Server - Example: mail.yourdomain.com.
ini_set("SMTP", "mail.amaderica.com");
// Please specify an SMTP Number 25 and 8889 are valid SMTP Ports.
ini_set("smtp_port", "25");
// Please specify the return address to use
ini_set('sendmail_from', 'ravila@art.com');
$name = $_POST['Attention_To'];
// Set parameters of the email
$to = "ravila@art.com";
$subject = "Art Promo Items Ordered";
$from = " nostrowski@art.com";
$headers = "From: $from";
$message =
"Order has been placed. Attn to: $name .\n" .
"Items:\n";
foreach ($_POST as $fieldName => $fieldValue)
{
if (!empty($fieldValue))
$message .= " $fieldName: $fieldValue\n";
}
// Mail function that sends the email.
mail($to, $subject, $message, $headers);
header('Location: thank-you.html');
?>
我表单中的部分字段为silver_name_badges
,coffee_mug
,plastic_bag
,paper_bag
,candy
,moist_towlette
,{{1 }},notepad_and_pen
,tuck_box
,red_tie
,cap
等。
答案 0 :(得分:3)
将表单提交到评论页面,而不是发送页面(=您的问题代码)。除了呈现评论页面本身(包含所有数据)之外,将数据副本放入隐藏表单字段。添加电子邮件提交按钮,该按钮将数据(实际上与原始表单格式相同)提交到发送页面。
示例:
<dl>
<?
if (!empty($_POST['plastic_bag']))
{
?>
<dt>Plastic bag:</dt>
<dd><?=htmlspecialchars($_POST['plastic_bag'])?></dd>
<?
}
if (!empty($_POST['paper_bag']))
{
?>
<dt>Paper bag:</dt>
<dd><?=htmlspecialchars($_POST['paper_bag'])?></dd>
<?
}
// and so forth for all fields
?>
</dl>
<form action="your_mailing_script_from_your_question.php" method="post">
<?
foreach ($_POST as $key => $value)
{
echo "<input type=\"hidden\" name=\"".htmlspecialchars($key).
"\" value=\"".htmlspecialchars($value)."\"/>\n";
}
?>
<input type="submit" value="Email this"/>
</form>
在HTML4中,您不能在同一表单上有两个按钮将表单提交到其他URL。所以有两种选择:
empty($_POST["button_name"])
)。然后它检测到按下了“后退”按钮,它将帖子重定向回表单URL。 在HTML5中,您可以将每个按钮提交到不同的网址。检查formaction
标记的input
属性。我不知道,如果你能负担得起使用HTML5。在浏览器中查看support for the attribute。
当然,您必须修改表单脚本以使用“后退”按钮提交的数据填写表单。 E.g:
<p>
<label for="plastic_bag">Plastic bag:</label>
<?
$value =
!empty($_POST["plastic_bag"]) ? htmlspecialchars($_POST["plastic_bag"]) : NULL;
?>
<input name="plastic_bag" id="plastic_bag" value="<?=$value?>"/>
</p>