防止发送html表单中的未填充字段

时间:2013-11-02 15:47:34

标签: php

不是php程序员,只是为我的HTML。我正在使用一个非常大的表单,其中包含许多文本字段,用于订购的商品数量我的意思是数百。如果您填写一个或两个项目(大多数通常是大约五个),表单将返回所有结果,其中选择的是答案,其余的只是空白,但它只会产生巨大的电子邮件结果。是否有代码或脚本或其他内容,以防止发送未填充的字段?它使用PHP脚本通过电子邮件发送。

此致 鲍勃Z。

2 个答案:

答案 0 :(得分:1)

在解析$ _POST值(添加到电子邮件消息的位置)之前执行此操作。然后,无论您使用什么方法将POST变量放入电子邮件正文中,无论是foreach,还是print_r或类,都不会存在空白。

$_POST=array_filter($_POST);

它将删除值为== false的所有键,其中包括空。但请注意,0 ==也是假,所以如果你想保留它们,你需要改为

function myFilter($var){
  return ($var !== NULL && $var !== FALSE && $var !== '');
}

$_POST=array_filter($_POST, "myFilter");

答案 1 :(得分:0)

我猜表单正在使用METHOD="POST"将信息传输到处理脚本。你想要的是找到所有表格字段在一起的地方。如果字段值为空,则必须在此处添加检查。

可能是这样的:

// init email
$email = '';

// process fields
foreach ($_POST as $fieldName => $fieldValue)
{
     if ($value != '')
     {
         $email .= $fieldName . ': ' . $fieldValue . PHP_EOL;
     }
}  

// send email
...

如果您发布处理格式的PHP代码并发送电子邮件,那么告诉您修复问题的确切代码会更容易。

问候, 理查德