The FormFeeder

Download area is here

SourceForge Logo Support This ProjectNew!!!

What is it?

The FormFeeder is a simple script that allows your users to submit information from a form via email. What is differant here from other such scripts is firstly, the fact that the FormFeeder includes features such as mail merge, and HTML templates for invalid submissions. Another feature is the ability to use the same CGI script for multiple forms on a host - the script is fully remotely controllable from any form on any given webserver.

Initial setup

Initial setup consists of setting up the following variables.

Script Variables

$SENDMAIL
Contains the absolute path to your sendmail program (probably something like /usr/sbin/sendmail)
$HTMLROOT
Contains the absolute path to your HTML directory (probably something like /home/username/public_html)
$HTMLAUTHOR
Wouldn't want to stop you from making yourself known :-) Whatever's in this variable is added to the META AUTHOR tags in all built-in pages...
$PERM_RECIP
Optional variable that allows you to overwrite the recipient form variable for security reasons
$PERM_SUBJ
Optional variable that allows you to overwrite the subject form variable for security reasons

All other variables are form-related, and are therefore passed via the form itself.

Form Variables

This section contains variables that can be included in the form to affect how the script will work

Required Form Variables

recipient
Contains the email address that the form should send to. Can be overwritten by the $PERM_RECIP variable from within the script
subject
Contains the subject of the email message that will be generated. Can be overwritten by the $PERM_SUBJ variable from within the script

Optional Form Variables

template
Contains the "URL" to a template document that will be shown after a successful submission. Although this path is from the root for the HTML, it is NOT a real URL, and therefore cannot point to a remote location. However, as an advantage to this, paths behind the HTML root can be used in the format "../foo/bar.html". For information on how the template can be used, see the template file commands section, below.
badinput
Same as the template variable, except this template will be used when incorrect (ie, insufficient) data has been submitted
nonrequired
This should contain a comma-seperated list (no spaces near the commas!!!) of form variables that will not be marked as "required" when checking to see whether the user entered information into all fields
mailfile
Same as the template variable, except that this template will be used as the body of the email message that is sent when the form input is validated.
htmlmail
Same as the mailfile variabe, except that this template is for sending HTML rich mail. This should be used in conjunction with the mailfile variable for sending a text-only mail for non-HTML-compatible mail programs, but is not necessary.. If mailfile is not provided, the text-only version will be automatically generated.
morepages
Setting this to true will cause the script to defer sending the email. This is useful for making multi-page forms with one submittal at the end.
REMOTE_ADDRNew!!!
Including this as a hidden field will cause the user's IP to be included in the email

Template File Commands

The power that makes FormFeeder so good, lies mainly in it's ability to let you easily create professional looking webpages in response to user entry. As of version 1.02, templates could be set up to contain embedded form output. In version 1.03, the badinput template was extended to allow logic tests to see what form input was added by the user and, more importantly, what the user omitted. The following list contains more detailed information on template file commands.

Template Commands

<!--##name##-->
Replaces the entire comment tag with the content of the input recieved with the name name
<!--##iffail(name)COMMAND##-->
Replaces the entire comment tag with COMMAND, if, and only if, the input name was a required input field and was omitted. If it is not changed, the reason why will be written to the HTML output in a comment tag. For badinput template only
<!--##ifpass(name)COMMAND##-->
Same as iffail command, except that COMMAND will be done if the input name contained user input. For badinput template only

Copyright Information

Copyright (c)2000, 2001, 2002, 2003 - Issac Goldstand - All rights reserved

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. A copy of the GNU Public License can be viewed here.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Author Contact & Download

Due to the fact that I've switched licenses, no versions earlier than 1.02 are available.

Download Instructions:

Now that we're being hosted by Sourceforge, all downloads and comments can be done from the FormFeeder Project Homepage or alternatively, you can go straight to the FormFeeder Project Filelist.

Alternatively, the following links can be used to access releases:

Donations RecievedNew!!!