不是 php 程序员,对我来说只是 html。我正在使用一个非常大的表单,其中包含许多用于订购商品数量的文本字段。我的意思是数百。如果您填写一两个项目(大多数通常是五个左右),表单会返回所有结果,其中选择了答案,其余的都是空白的,但它会为少数人提供巨大的电子邮件结果。是否有代码或脚本之类的东西,可以防止发送未填充的字段?它使用 PHP 脚本通过电子邮件发送。
问候,鲍勃 Z。
不是 php 程序员,对我来说只是 html。我正在使用一个非常大的表单,其中包含许多用于订购商品数量的文本字段。我的意思是数百。如果您填写一两个项目(大多数通常是五个左右),表单会返回所有结果,其中选择了答案,其余的都是空白的,但它会为少数人提供巨大的电子邮件结果。是否有代码或脚本之类的东西,可以防止发送未填充的字段?它使用 PHP 脚本通过电子邮件发送。
问候,鲍勃 Z。
在解析 $_POST 值(添加到电子邮件的位置)之前执行此操作。然后,无论您使用什么方法将 POST 变量放入电子邮件正文,无论是 foreach、print_r 还是一个类,这些空文件都不存在。
$_POST=array_filter($_POST);
它将删除值为 == false 的所有键,包括空键。但请注意,0 == false 也是如此,所以如果你想保留这些,你将需要这个
function myFilter($var){
return ($var !== NULL && $var !== FALSE && $var !== '');
}
$_POST=array_filter($_POST, "myFilter");
我猜该表单METHOD="POST"
用于将信息传输到处理脚本。您想要的是找到所有表单域都放在一起的地方。在这个地方,您必须添加检查,如果字段值是否为空。
可能是这样的:
// init email
$email = '';
// process fields
foreach ($_POST as $fieldName => $fieldValue)
{
if ($value != '')
{
$email .= $fieldName . ': ' . $fieldValue . PHP_EOL;
}
}
// send email
...
如果您发布处理表单并发送电子邮件的 php 代码,则更容易告诉您解决问题的确切代码。
问候,理查德