PHP:不要给留空的表单字段发送电子邮件
目前,我正在制作一个带有一组非必填字段的在线查询表单 如果一个非强制性的表单字段没有填写,我想让它不通过处理过的电子邮件 比如,;如果有人没有输入他们的电话号码,“电话:$atelephone”组件将无法通过PHP:不要给留空的表单字段发送电子邮件,php,forms,email,Php,Forms,Email,目前,我正在制作一个带有一组非必填字段的在线查询表单 如果一个非强制性的表单字段没有填写,我想让它不通过处理过的电子邮件 比如,;如果有人没有输入他们的电话号码,“电话:$atelephone”组件将无法通过 if ($atelephone != '') { echo "Telephone: ".$atelephone; } 我认为代码中应该有上面提到的东西,尽管我很难把这些点连接起来。任何帮助都将不胜感激。(我希望这是有道理的) Hm,在POST数组中循环,如果字段为空,则不要添加它
if ($atelephone != '') {
echo "Telephone: ".$atelephone;
}
我认为代码中应该有上面提到的东西,尽管我很难把这些点连接起来。任何帮助都将不胜感激。(我希望这是有道理的)
Hm,在POST数组中循环,如果字段为空,则不要添加它 比如:
$acceptedInputs = array('name', 'email', etc.);
$spacesBA = array('message'=>array(1,2)); //Spaces before/after, first is before, second is after. Default is none.
$emailBits = array();
foreach ($_POST as $name=>$value)
{
if (!in_array($name, $acceptedInputs)) //Don't want them to submit unknown fields
continue;
if (!empty($value))
$emailBits[] =
str_repeat("\n",(isset($spacesBA[$name][0])?$spacesBA[$name][0]:0) /* Add before lines */
. $name . ' : ' . $value .
str_repeat("\n",(isset($spacesBA[$name][1])?$spacesBA[$name][1]:0)); /*Add after lines */
}
$emailBody = "
===========================================
Please note: this is an email
generated from the Website.
===========================================
";
$emailBody .= implode("\n",$emailBits);
$emailBody .= "
================================ ";
你在正确的轨道上。最后一步是在最终消息中输入字符串:
$_POST['telephone'] ?
$telephoneString = "Telephone: ".$_POST['telephone'] ."\n" :
$telephoneString = "";
(字符串末尾的\n
将换行。)
然后,在消息中输出字符串。它将是空的,或者不是
"foo bar baz
===========================================".
$nameString.
$emailString.
$telephoneString.
$suburbString;
编辑
这可能对单个表单字段更有效。不过,为了美观起见,我更喜欢@mazzzzz的解决方案。谢谢@mazzzzz上述解决方案确实不错,尽管所讨论的查询表单有200多个字段,因此需要对其进行一点特殊的样式设置。意外按下return。这样我就可以把答案集中在一个标题下,并在适当的地方放置额外的返回,使电子邮件更容易阅读。我想你可以制作另一个数组,每比特返回多少,然后在每个循环中添加多少。Tbh,这是唯一实用的解决方案,我同意我认为@mazzzzz解决方案真的很好。非常感谢您的解决方案。不幸的是,我想我必须生成单独的表单字段。@Brandrally-您可能需要检查代码中的安全性。通常情况下,在任何地方发送原始
post
数据而不先对其进行过滤是个坏主意。过滤什么是一个全新的问题。
"foo bar baz
===========================================".
$nameString.
$emailString.
$telephoneString.
$suburbString;