Add options to ignore empty fields.

This commit is contained in:
Eric Fawcett 2017-10-30 21:13:43 -04:00
parent 288501be64
commit f4bfcc175f
1 changed files with 15 additions and 6 deletions

View File

@ -1,8 +1,5 @@
<?php <?php
/************************************************************************ /************************************************************************
* SendForm Version 0.99.1 *
* Created 10 May 2005 *
* Modified 17 Oct 2017 *
* Questions/Comments: eric.fawcett@gmail.com * * Questions/Comments: eric.fawcett@gmail.com *
* * * *
* COPYRIGHT NOTICE * * COPYRIGHT NOTICE *
@ -38,6 +35,11 @@
// NOTE: The field "recipient" is required by this script and will always be checked. // NOTE: The field "recipient" is required by this script and will always be checked.
$defaultReq = ""; $defaultReq = "";
// $defaultIgnoreEmpty is either true or false. If true, the script will ignore all empty fields
// and return only fields that contain data. Useful if you have a number optional fields and do not
// want to output them to the resulting email.
$defaultIgnoreEmpty = false;
// $smtpEnable enables or disables the SMTP sending method. enter 1 to turn it on or 0 to turn it off // $smtpEnable enables or disables the SMTP sending method. enter 1 to turn it on or 0 to turn it off
// $smtpHost, $smtpUser, $smtpPass only need to be filled if $smtpEnable is set to 1 // $smtpHost, $smtpUser, $smtpPass only need to be filled if $smtpEnable is set to 1
$smtpEnable = "0"; $smtpEnable = "0";
@ -57,7 +59,7 @@
else $defaultReq = "recipient"; else $defaultReq = "recipient";
$referals = explode(",", $referals); $referals = explode(",", $referals);
$excludeFields = explode(",", "recipient, ccrecipient, bccrecipient, subject, required, redirect, mailtemplate, mailtemplatehtml, submit, submit_x, submit_y, verification, " . $excludeFields); $excludeFields = explode(",", "recipient, ccrecipient, bccrecipient, subject, required, redirect, mailtemplate, mailtemplatehtml, submit, submit_x, submit_y, verification, ignoreempty, " . $excludeFields);
$srequired = explode(",", $defaultReq); $srequired = explode(",", $defaultReq);
$errMsgStyle = "font-family: Arial; $errMsgStyle = "font-family: Arial;
@ -86,6 +88,11 @@
else else
$subject = $defaultSubject; $subject = $defaultSubject;
if(isset($_POST['ignoreempty']) && ($_POST('ignoreempty') === true || $_POST('ignoreempty') === false))
$ignoreempty = $_POST['ignoreempty'];
else
$ignoreempty = $defaultIgnoreEmpty;
if(isset($_POST['email']) && trim($_POST['email']) != "") if(isset($_POST['email']) && trim($_POST['email']) != "")
$fromemail = $_POST['email']; $fromemail = $_POST['email'];
else else
@ -163,9 +170,10 @@
} }
function writestandard() { function writestandard() {
global $message, $theDomain; global $message, $theDomain, $ignoreempty;
$message="Here is the information collected:\n\n"; $message="Here is the information collected:\n\n";
foreach($_POST as $varname => $varval) { foreach($_POST as $varname => $varval) {
if($ignoreempty===true && empty($varval)) continue;
if(is_array($varval)) $varval = implode(", ",$varval); if(is_array($varval)) $varval = implode(", ",$varval);
if(!exclude($varname)) { if(!exclude($varname)) {
$message .= "$varname: "; $message .= "$varname: ";
@ -184,12 +192,13 @@
} }
function writetemplate($thefile) { function writetemplate($thefile) {
global $message, $theDomain; global $message, $theDomain, $ignoreempty;
$thearray = Array(); $thearray = Array();
if($fp = @fopen($thefile, 'r')) { if($fp = @fopen($thefile, 'r')) {
while($data = fgets($fp, 1024)) { while($data = fgets($fp, 1024)) {
$data = chop($data); $data = chop($data);
foreach($_POST as $varname => $varval) { foreach($_POST as $varname => $varval) {
if($ignoreempty===true && empty($varval)) continue;
if(is_array($varval)) $varval = implode(", ",$varval); if(is_array($varval)) $varval = implode(", ",$varval);
$data = str_replace("[$varname]", $varval, $data); $data = str_replace("[$varname]", $varval, $data);
} }