Form Solution -- Change Log

Version Changes
  • Add note to top of email saying which web page sent the email.
  • Remove blocking < and > characters in the body.
  • Allow modifying email form name attributes via $Opt parameter.
  • Add suppressresults to $Opt parameter, allowing suppression of the "results" output table on success.
5.9 Update docblock to indicate PHP 5 is required.
  • Requires PHP 5. The class has been updated to use PHP 5 OOP syntax.
  • ereg is being deprecated in PHP 5.3, so use preg functions instead.
5.7 Several EmailForm() improvements:
  • Renamed form elements to impede spammers.
  • Removed max option. Was used in Name and Subject lines.
  • Removed maxlength from <textarea> element.
  • Removed idf from all but the <form> element.
  • Removed idp from all but the preview <table> element.
  • Added prefixs option, allowing you to prepend an identifier to the subject line of the emails sent to you by the form.
  • Added -f as an additional parameter to PHP's mail() call.
  • Added action element to the form.
  • Added Content-Type: text/plain to email headers.
  • Fixed minor typo in EmailMatch regular expression.
  • Skip Time Sent output in Preview mode.
5.6 Coding standards tweaks.
5.5 Improve XHTML compliance by using selected="selected".
5.4 Use RFC 2822 to define legitimate email address characters. Improve docblocks a little bit.
  • Save some memory by assigning $Source by reference and unsetting HTTP_*_VARS earlier when possible.
  • Added "Y" accesskey to EmailForm().
  • Added $ID parameter to DateTimeOptionList() for use with labels to permit accesskeys.
  • Removed class from <br /> since classes don't apply to them.
5.2 Prepare for PHP5 defaults: $_GET and $_POST used first, then $HTTP_GET_VARS and $HTTP_POST_VARS used as fallback.
5.1 Changed line endings from CR LF to LF.
5.0 AddressLineStandardization(), StateList() and CreditCardValidation() moved to a separate classes. Started adding phpDocumentor comments. A few minor efficiency tweaks, requiring the use of PHP 4.
4.14 empty() check added to CreditCardValidation() to eliminate vulnerability. " changed to ' in some locations.
4.13 CreditCardValidation() added. Further modified DateTimeOptionList():
  • New options to the Zero argument, E and B, allow Empty strings or Both empty and zeros to be in the lists.
  • Default and Begin are now validated.
  • Class and Size now evaluated against if (* != '') instead of if (*).
  • Added the C option to the Default argument.
4.12 DateTimeOptionList() set up to handle empty strings for null times.
  • Eliminated situation where submissions containing variables named $Keep or $Max would interfere with proper cleaning of the input.
  • System now clobbers the raw $_POST, $_GET and $_REQUEST superglobals.
  • Accounted for changes in PHP so that the raw $HTTP_POST_VARS, $HTTP_GET_VARS and directly named variables are always deleted.
  • Added the EmailForm() function.
  • Added new Keep types: AlphaNumAll, AlphaForeignNumAll and EmailForm.
  • Added a Keep pattern named EmailMatch for validating email addresses.
  • Programmers can now add/edit the Keep patterns used in StripBadCharacters().
  • Further improved readability of the code.
  • The system now has three reserved variable names: Patterns_FS_RESERVED, Keep_FS_RESERVED and Max_FS_RESERVED.
4.10 Made some code easier to read. is_object() check added to CopyObjectContentsIntoForm().
4.09 HTTP_GET arrays are now handled. If input of StripBadCharacters() is an array, an empty string is returned.
4.08 Emails can now have "+" in them.
4.07 Changed the DateTimeOptionList() function in two ways. First, added the $Class argument. Second, changed an argument name from $Selected to $Default to maintain consistency between my programs. This second change has no impact on your scripts.
4.06 Added two optional arguments to the Constructor Function, providing the ability to dynamically alter which characters are kept in variables submitted by forms and URI query strings.
4.05 Tweaked TimeValidateAndFormat() so it doesn't get hung up if numeric strings are submitted rather than integers.
4.04 The GetVariableHandler() and PostVariableHandler() functions were eliminated and their functionality moved into the constructor function.
4.03 DateValidateAndFormat() ran into untrapped problems with dates earlier than 1970 when running PHP 4.0.2.
4.02 Added Zero argument to DateValidateAndFormat().
4.01 First public release.