Help, Troubleshooting & Common issues

For any question or request

Read This First

The licensing system

Here's how the licensing system works:

1 license = 1 domain + any subdomain

Registration:

When you register:

You have to register both on your localhost & production server.

The license.php content depends on your registration URL, & you must not overwrite your production license.php with the localhost one.

License check system

PHP Form Builder is checking your registration in two different ways:

Both will accept any subdomain, but you can't use different domain names extensions.

You have to buy a license for domain.xxx & another one for domain.yyy
& register both with their purchase number.

You can then use any subdomain on both.

Installation error

If you see the message "An error occurred during the registration process.", or any PHP error, or white page:

You have to enable the PHP CURL extension.

Restart your PHP server. Then the installer will work.

Can't connect to licensing server

You entered your purchase code with a trailing space.

Your copy of PHP Form Builder is NOT authorized

This error occurs if you registered your license with a different URL (HTTP/HTTPS; www or without www) than the one you use to access your page.

The solution is to always use the same URL, for instance, https://www.your-domain.com. Regardless of PHP Form Builder, it is a good practice to adopt. It will also improve your SEO.

Reinstall PHP Form Builder

A Regular license allows two installations - one for your localhost & the other for your production server.

If you want to change the installation URL (domain, folder, ...), you have first to uninstall PHP Form Builder from your initial URL. Then reinstall it on the new one.

To uninstall PHP Form Builder:

  1. Open your registration URL - phpformbuilder/register.php
    You should see a message saying that Your PHP Form Builder copy is already registered on this domain.
  2. Enter your purchase code & click the Unregister button
  3. You can register again on a different domain/URL.

If for any reason you can't unregister your copy & want to reinstall it, please get in touch with me,
send me your purchase code & delete phpformbuilder/[your-domain]/license.php from your server.
I'll remove your installation license from the server then you'll be able to reinstall it elsewhere.

White page / Error 500

If your page is white or returns "HTTP ERROR 500", you have a PHP error.

To display the error message, you have to enable PHP display errors.

  1. Add the following code just after use statements :
    <?php
    use phpformbuilder\Form;
    use phpformbuilder\Validator\Validator;
    
    // add the line below to your code :
    ini_set('display_errors', 1);
  2. Refresh your page. Then you'll see what error is thrown and probably find solutions in other parts of this document.
    Once you have solved your problem, remove the ini_set() line if you don't want errors to be displayed anymore.

If the ini_set() function does not work on your server, you have to turn display_errors On in your php.ini

Installation in a subfolder - Warning: include_once(...):

If you installed PHP Form Builder in a subfolder make a global search / replace from your IDE to change all the includes at once:

<?php
// Search this:
include_once rtrim($_SERVER['DOCUMENT_ROOT'], DIRECTORY_SEPARATOR) . '/php/phpformbuilder/phpformbuilder/autoload.php';

// Replace with this:
include_once rtrim($_SERVER['DOCUMENT_ROOT'], DIRECTORY_SEPARATOR) . '/your-dir/phpformbuilder/autoload.php';

Explanation

PHP Form Builder requires a single file, which is always called using PHP include_once() function :

<?php
include_once rtrim($_SERVER['DOCUMENT_ROOT'], DIRECTORY_SEPARATOR) . '/php/phpformbuilder/phpformbuilder/autoload.php';

If the path to file inside parenthesis is wrong Form.php is not found.

You've got to set the right path leading to your phpformbuilder directory.

To solve the problem:

  • Change the path of the include to point to the correct folder:
    <?php
    // replace "your-dir" with yours in the following line
    include_once rtrim($_SERVER['DOCUMENT_ROOT'], DIRECTORY_SEPARATOR) . '/your-dir/phpformbuilder/autoload.php';

OR

Fatal error: Call to undefined function phpformbuilder\mb_strtolower()

PHP Form Builder uses the PHP mb_string extension to send emails with the correct encoding.

PHP mb_string extension allows working with a multi-byte encoding (UTF-8, ...).

PHP mb_string extension is not a default PHP extension but is enabled on most servers.

If it's not enabled on yours, you've got two solutions:

  1. (Best solution) Install/Enable PHP mb_string.
    Depending on your server and system, many explanations are available on the web to know how to proceed.
    1. Open phpformbuilder/Form.php and replace all occurrences of mb_strtolower with strtolower.
    2. If your PHP Form Builder version is <= 3.5.2, replace
      $charset = mb_detect_encoding($mergedHtml);
      with:
      charset = 'iso-8859-1';
      if (function_exists('mb_detect_encoding')) {
          $charset = mb_detect_encoding($mergedHtml);
      }
      You'll find your version number in the comments at the beginning of phpformbuilder/Form.php
    3. Warning: You may experiment with encoding issues with multi-byte encoded characters (accents, special characters) when sending emails.

Plugins don't work

  1. Open your browser's console (instructions here)

    You have to solve all errors you see in the console. Errors probably come from your page content, not from phpformbuilder itself.

    Be sure you include at first jQuery, THEN Bootstrap js, THEN phpformbuilder plugins code :

    <!-- jQuery -->
    <script src="//code.jquery.com/jquery.js"></script>
    <!-- Bootstrap JavaScript -->
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <?php
        $form->printIncludes('js');
        $form->printJsCode();
    ?>

     

  2. PHP Form Builder is optimized for fast loading.

    It means that all the required plugins files (CSS & JavaScript) are automatically minified & concacenated.

    When you make changes to the form these files are automatically regenerated.

    The minified/concatendated files are located in phpformbuilder/plugins/min/[css|js]

    You can always safely remove the css & js files located in these 2 folders.
    They'll be regenerated and refreshed. This can in some cases solve cache issues.

    When you're in development, you can call the unminified unconcatenated files this way:

    // This will load the unminified unconcatenated files
    $form->setMode('development');
  3. In a few cases, your server may not be correctly configured. The consequence is that the plugins URLs are wrong.

    Solution is to set the URL to plugins directory manually:

    // Set URL to match your plugins directory
    $form->setPluginsUrl('http://phpformbuilder/plugins/');

I do not receive the emails sent

  1. Check that the sender_email address is from your domain (anything@your-domain.com).
    You must always use an email address from your domain as the sender when you send emails.
    Otherwise, you will not pass the spam filters, which will assume that you have usurped an identity.

    You can add a reply_to_email option to set to whom the reply will be sent.
  2. Edit phpformbuilder/mailer/email-sending-test.php:
    Replace the sender email address L.16 with an email address from your domain.
    Open the file in your browser and fill in the form to send an email.
    If you still don't receive the message, contact your hosting provider and ask him to enable the PHP mail() function.

CSS issues

Included templates use a custom version of Bootstrap's css. You'll find it in phpformbuilder/templates/assets/stylesheets/bootstrap.min.css.

Set the correct path from your form to this css :

<!-- Bootstrap CSS - Change path with your own -->
<link href="assets/assets/css/bootstrap.min.css" rel="stylesheet">

... Or replace with Bootstrap CDN :

<!-- Bootstrap CSS CDN -->
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

Can't Submit form (using jQuery validation plugin)

jQuery validation plugin is complex and can have unexpected behaviors if it encounters configuration issues or malformed HTML.

To solve this :

  1. Don't use any input, button, or other form element named "submit". It's not compatible with jQuery validation (reserved name).
  2. Validate your code W3C validator
  3. Open your browser's console (F12) and look for errors.
  4. Open phpformbuilder/plugins-config/formvalidation.xml and use console.log (un-comment) to find out what's going on.

PHP SESSION settings error

You have an error in your PHP SESSION settings.

If you see this message when you post a form, the PHP SESSION variables could not be registered due to some wrong settings on your server.

  • If session.cookie_secure is enabled in your php.ini and your URL is HTTP instead of HTTPS, the session cookies can't be sent. You must turn off session.cookie_secure in your php.ini or enable HTTPS.
  • If you have a Set-Cookie directive in a .htaccess with the Secure value and your URL is HTTP instead of HTTPS, the session cookies can't be sent. You must disable this directive or enable HTTPS.
  • Some other session settings may have to be reviewed in your php.ini or .htaccess, for instance, session.cookie_domain, session.cookie_httponly.

Migration

Migration from version 5.x to v6

PHP Form Builder 6 is a major update. Here's how to update your code to upgrade to the version 6:

  1. The PHP Form Builder now uses an autoloader. Include the autoloader instead of including individual files:

    // old code:
    include_once rtrim($_SERVER['DOCUMENT_ROOT'], DIRECTORY_SEPARATOR) . '/php/phpformbuilder/phpformbuilder/Form.php';
    
    // replace with:
    include_once rtrim($_SERVER['DOCUMENT_ROOT'], DIRECTORY_SEPARATOR) . '/php/phpformbuilder/phpformbuilder/autoload.php';
  2. Remove all the references to the fileuploader includes in your code. The fileuploader is now included in the autoload:

    // remove all the references to the fileuploader includes in your code:
    include_once $root . '/phpformbuilder/plugins/fileuploader/server/class.fileuploader.php';
  3. The DB class has been replaced by PowerLite PDO. Please refer to the Database documentation for more information.

Changelog (V4 and earlier versions)

This changelog only includes the changes for version 4 and earlier versions.

The latest changelog is available here on the home page.

version 4.5.7 (06/2021)


New Features:
    - add a "readonly" option to the inputs in the drag & drop form builder
Improvements:
    - improve the dropzone sizing  in the drag & drop form builder
Bug Fix:
    - popup close not working in the drag & drop form builder when clicking "no".

version 4.5.6 (05/2021)


New Features:
    - add a new Bootstrap Input Spinner plugin ('+' and '-' buttons for number inputs)
Improvements:
    - add $mail->Sender in Form.php for PHPMailer to improve email deliverability
    - edit the Fileuploader PHP image upload script to crop the images AFTER resizing
      (the original behavior that center-crops the original image is still available in the file code comments)
    - edit phpformbuilder/plugins-config/formvalidation.xml to accept empty tel numbers if they're not required
    - add a new 'no-auto-submit' attribute to the JavaScript validator plugin to allow to prevent the form submission after validation
      (this allows to write custom Ajax requests, which is helpful in some cases like step forms)
    - increase the height of the drop area in the drag & drop form generator
Bug Fix:
    - validator now validates integers with leading zeros (PHP::Bug #43372)
    - fix JavaScript validation with the file uploader plugin on required fields
    - remove PHP warning with Form::clear() combined with dependent fields
    - fix accidentally removed classes with Material Design textareas
    - repair the Passfield plugin Bootstrap popover - was broken by the latest Bootstrap versions
    - fix error in Material Datepicker months (error coming from the original plugin)

version 4.5.5 (12/2020)


New Features:
    - add the "disabled" attribute in the Drag & Drop Form Builder for individual checkbox/radio buttons
Improvements:
    - sanitize directory separator in class/Form.php to avoid wrong plugins URL detection on server with inconsistent $_SERVER['SCRIPT_NAME'] and $_SERVER['SCRIPT_FILENAME'] values
    - update the Passfield plugin to the latest version, edit the plugin js file to solve a console error (& send a PULL request on Github)
Bug Fix:
    - fix file uploader plugin with editor set to false behavior

version 4.5.4 (11/2020)


New Features:
    - add a new template with several Ajax forms loaded on the same HTML page
Improvements:
    - change the Ajax loader JavaScript to be able to load multiple Ajax forms on the same page easily
    - update the formValidation plugin to the latest 1.7 version
    - update the formValidation XML code to be able to load multiple Ajax forms
    - update the PHPMailer to the latest 6.1.8 version
Bug Fix:
    - no known bug at this time!

version 4.5.3 (10/2020)


New Features:
    - add a new template with Dependent select dropdown loaded with Ajax depending on parent select value
Improvements:
    - add data-format-submit to material date/time pickers
    - auto-sanitize filenames with the Fileuploader plugin
Bug Fix:
    - sanitize email sent_message in the drag & drop form builder
    - replace the material timepicker deprecated "onClose" event with "onCloseEnd"
    - fix date value with date pickers when a form is posted with errors
    - fix deprecated curly braces in phpformbuilder/mailer/phpmailer/htmlfilter.php

version 4.5.2 (07/2020)


Improvements:
    - auto-enable the Form validation plugin to the drag and drop default form
    - make the Form validation plugin translations available in the drag and drop form main settings
    - add an alert message when the form contains a submit button named "submit" with the Formvalidation plugin.
      ("submit" is a reserved name for the Formvalidation plugin)
    - add an alert message when the form contains a hidden field with the required attribute with the Formvalidation plugin.
      (the Formvalidation plugin doesn't allow this)
    - upgrade Material date / time pickers + i18n
    - add litepicker plugin custom css
Bug Fix:
    - properly escape the drag and drop form labels, placeholders, icons, and attributes (2nd attempt ...)
    - lc_switch labels now will toggle the switch as intended (the bug comes from the LC_switch plugin itself, PHP Form Builder will now compensate it)
    - fix JavaScript error with non-required checkboxes + icheck plugin + Formvalidation plugin
    - update links to the drag-and-drop from .php to .html

version 4.5.1 (06/2020)


New Features:
    - add the formvalidation plugin to the drag & drop builder
Improvements:
    - fix PHP 7.4 warnings
    - add optional SMTP settings in the email test/debug file
Bug Fix:
    - fix drag and drop iframe preview in Firefox + Edge browsers
    - properly escape the drag and drop form labels, placeholders, icons, and attributes
    - fix the selectpicker problem when used on several fields
    - fix file uploads with the same file name issue. The uploaded files are now renamed with a suffix if they already exist.
    - fix material base js for bs4 forms with material pickers

version 4.5 (05/2020)


New Features:
    - add a new "signature pad" plugin for electronic signatures (handwritten signatures in forms)
    - add a new "litepicker" plugin (date/date range picker)
    - add a new "date range picker" form in templates
    - add a new "license agreement" form in templates
    - update the "car rental form" template with the new date range picker plugin
    - add "isHTML" + "textBody" options in sendMail() function
    Drag and Drop form Builder:
        - Choice of field widths (33%, 50%, 66%, 100%)
        - possibility to group 2 fields on the same line (horizontal forms)
        - choice of the icon library used and the possibility to add and position icons on the input and button elements
        - load / save the JSON forms on the server as well as on disk
        - drag and drop files from the "save on server" file browser
        - save the JSON forms on the server in subfolders
        - add JSON forms templates in the JSON forms folder
Improvements:
    - accessibility: add aria-label automatically for all fields that have a placeholder and no label text
    - move the Bootstrap 4 error messages below the helper texts when inputs have addons (icons, ...)
    - the drag and drop form builder will now throw an alert if the user leaves the page without having saved the changes
    - disable browser autocompletion automatically for the date, date range, and time pickers
    - change the website search for a far better one
    - change the website chat widget
Bug Fix:
    - fix redirection after success in the drag and drop form builder
    - fix a drag-and-drop form builder error in JSON with the intlTelInput plugin
    - fix checkbox states memorization in the drag and drop form builder
    - fix customer-satisfaction-step-form behavior on window resizing
    - fix missing quotes in JSON files for checkboxes in the drag and drop tool
    - fix material-base.min.js JS console error

version 4.4 (03/2020)


New Features:
    - New Drag & Drop Form Builder
Improvements:
    - auto-scroll to the 1st error when PHP validation failed after POST
    - upgrade the Bootstrap Select plugin to its latest version
Bug Fix:
    - fix undefined location.ancestorOrigins in Firefox

version 4.3.1 (12/2019)


Improvements:
Bug Fix:
    - fix new Recaptcha v3 async. loading issue

version 4.3 (09/2019)


Improvements:
    - update the licensing system to allow registration on domain aliases
      IMPORTANT: if you upgrade from a previous version, you must first unregister your license.
                 Then upload the new package and register again.

version 4.2.5 (02/2019)


Bug Fix:
    - fix Material pickers javascript errors

version 4.2.4 (06/2019)


Improvements:
    - add security checks on file removal with the fileuploader plugin
    - group security checks in a single readable file for the fileuploader plugin

version 4.2.3 (06/2019)


New Features:
    - add dependent field example in switches-form.php templates
Improvements:
    - Dependent fields now play nice with LCSwitch
Bug Fix:
    - fix buggy LCSwitch events with Bootstrap 3

version 4.2.2 (05/2019)


New Features:
    - add Visual Studio Code extension - https://marketplace.visualstudio.com/items?itemName=Miglisoft.phpformbuilder
    - add Recaptcha V3 - https://www.phpformbuilder.pro/documentation/javascript-plugins.php#Recaptchav3-example
    - new "POST with Ajax" template available - https://www.phpformbuilder.pro/templates/bootstrap-4-forms/post-with-ajax-form.php
Improvements:
    - update the fileuploader plugin to latest V2.2
    - rebuild the phpformbuilder.pro website custom search engine
    - Dependent fields selectors now accept any fieldnames & loop indexes
    - update templates with latest Bootstrap 4 / jQuery / font awesome
    - replace invisible Recaptcha with Recaptcha V3 in templates
    - update Sublime Text plugin
Bug Fix:
    - label sizing for Bootstrap 4
    - main radio & checkbox label horizontal alignment with latest Bootstrap 4.3.1

version 4.2.1 (04/2019)


Improvements:
- add (very) strong protection for fileuploader plugin uploads
- live validator now auto-revalidate fields with Select2 & iCheck plugins on change event
Bug Fix:
    - update the pickadate plugin to its latest (the previous version was buggy with Chrome's latest update)
    - fix pickadate timepicker use with translation

version 4.2 (03/2019)


New Features:
- new function useLoadJs (https://github.com/muicss/loadjs):
  $form->useLoadJs($bundle = '');
  see https://www.phpformbuilder.pro/documentation/javascript-plugins.php#optimization-with-loadjs

Improvements:
- Prevent form submission while a file upload is in progress
- Misc minor improvements & code optimization

version 4.1 (03/2019)


New Features:
- add Tag Editor plugin for Ajax Search with Sortable Tags results
- add some new search forms in templates with Ajax search & tags
- add Ajax search in JavaScript plugins documentation

version 4.0.1 (02/2019)


Bug Fix:
    - upgrade PHPMailer to the latest 6.0.6 to fix PHP 7.3 warnings

version 4.0 (Major release - 12/2018)


New Features:
- new Material forms - use with Bootstrap 4 OR materialize framework as standalone
  more information: https://www.phpformbuilder.pro/documentation/class-doc.php#frameworks
- new material-datepicker plugin for Material forms + Bootstrap 4 forms
- add Select2 Material theme
- new setMode function
  development mode loads the original plugin CSS & JavaScript dependencies
  production mode (default) compile & compress all the plugins CSS & JavaScript dependencies
- new adAddon function to add button & text addons to input & select dropdowns
- add templates with addons examples: phpformbuilder/templates/[framework]/input-with-addons.php
- update JavaScript Form Validation plugin to the latest - now compatible with Foundation
- add JavaScript Form Validation icons
- add JavaScript Form Validation DEBUG mode
- update the Bootstrap Select plugin to the latest version - now compatible with Bootstrap 4
Improvements:
- rewrite all the plugins configuration
  now, most plugins accept HTML5 data-attributes for easy configuration
- rewrite all website, documentation & code examples for Bootstrap 4
- change the website structure
  now all the plugins have a dedicated page with code & examples
- remove the SMTP option from the sendMail function
    now SMTP is automatically enabled when $smtp_settings are filled.
- improve Ajax scripts loading (avoid browser console warning about deprecated Synchronous XMLHttpRequest on the main thread)
Bug Fix:
- solve plugins' URL detection with paths containing uppercase letters
- update Emogrifier to the latest version 2.0 (inline email css)
- edit phpformbuilder/mailer/phpmailer/extras/htmlfilter.php to remove the php7 warning
- now, Ladda buttons have correct settings when using different Ladda configurations simultaneously
Misc.:
- the default framework is now Bootstrap 4 (it was previously Bootstrap 3)
- remove the old Material Design forms based on Bootstrap 3 + old version of Materialize
- remove the old ugly jQuery-UI datepicker
- remove the "pickadate material" config
- remove deprecated templates which used the deprecated jQuery File Upload plugin
- remove deprecated jQuery File Upload plugin

version 3.6.2 (08/2018)


Improvements:
- update server-side validation functions to accept empty values,
    except for the validators whose internal logic make values required.
    Details are available here: https://www.phpformbuilder.pro/documentation/class-doc.php#php-validation-methods
Bug Fix:
- fix licensing system timeshift issue
- fix the invalid feedback message with iCheck + bs4
- fix Ladda plugin behavior with grouped buttons

version 3.6.1 (07/2018)


Improvements:
- improve HTML parsing
- disable onload live validation
- improve dynamic fields template 2 behavior
- improve dependent fields selectors parsing with regex
Bug Fix:
- fix centered button groups with the Foundation grid

version 3.6 (06/2018)


New Features:
- add required registration
- add the LC-Switch plugin
Improvements:
- update documentation
- update PHPMailer to the latest (6.0.5) - (wrong version numbers in src files, same issue in PHPMailer GitHub)

version 3.5.2 (05/2018)


Improvements:
- Add support for PHP without mbstring extension
Bug Fix:
- Recaptcha server-side validation errors now display correctly with bs4 (they were hidden by bs4's display:none css)
- fix server-side Recaptcha validation (which always returned true before)
- fix server-side validation errors markup inside input groups

version 3.5.1 (04/2018)


Bug Fix:
- fix live validation issue with invisible Recaptcha

version 3.5 (04/2018)


New Features:
- switch Foundation forms to Foundation 6.4+
  older versions are still available as 'foundation-float-grid' framework
  doc: /documentation/class-doc.php#frameworks
- add the Invisible Recaptcha plugin
  replace all Recaptcha v2 in templates with invisible Recaptcha except with ajax forms & multiple modals
- add a new "deferScripts" option to defer the loading of the plugins' scripts
  default value: true
Improvements:
- all scripts are now loaded with defer
- add code to reload uploaded files if forms are sent with errors in fileupload templates
Bug Fix:
- fix plugins loading with ajax and forms reloaded with errors

version 3.4 (04/2018)

IMPORTANT

This release includes a new fileuploader plugin with excellent new features.

The old fileupload plugin is now deprecated and will be removed in the next incoming version.


New Features:
- add a new awesome fileuploader plugin including image crop/resize tools
Improvements:
- switched Bootstrap 4.0.0-beta.3 to 4.1
- improve plugins code if several forms are using the same selectors & same plugins
- Add Bootstrap 4 Form Validation (live Javascript) i18n support in phpformbuilder/plugins-config/formvalidation.xml
- Rewrite step forms code
Bug Fix:
- fix PHP 7.2 warning with email sending - Parameter must be an array or an object that implements Countable
- Formvalidation now works fine with intl-tel-input and i18n (custom languages)
- Email sending will no more fail with an empty css file template

version 3.3 (12/2017)


New Features:
-   add ajax option (easy Ajax loading to load the forms in any HTML file)
    It plays well with any CMS (WordPress, Joomla, Drupal, ...)
-   add Documentation and screencast to use with CMS
-   add Image Picker plugin
-   add Image Picker Templates
Improvements:
-   upgrade PHP Mailer to the latest version
-   auto-filter token and submit buttons from email contents
Bug Fix:
- several minor fixes

version 3.2 (12/2017)


New Features:
-   add Bootstrap 4 support
-   add 40 Bootstrap 4 Templates
-   add the Select2 plugin - https://select2.github.io/
-   add the Ladda plugin - https://github.com/hakimel/Ladda
-   add the intl tel input plugin - https://github.com/jackocnr/intl-tel-input coupled with formvalidation
-   add the centerButtons(boolean) function
-   add some new options:
        buttonWrapper                   (element)
        centeredButtonWrapper           (element)
        centerButtons                   (boolean)
        verticalCheckboxLabelClass      (classname)
        verticalRadioLabelClass         (classname)
Improvements:
-   upgrade all plugins to the latest version
-   upgrade PHPMailer to latest 6.0 (required PHP 5.5+)
-   improve documentation
-   improve the use of several Recaptcha on the same page
-   reopen the modal if the form has been posted with a Recaptcha error
-   validate all generated code with Bootlint & W3C
    note: some of the included plugins (Bootstrap select, iCheck, jQuery file upload) generate Bootlint non-valid HTML
-   add Russian and Ukrainian languages to the server Validator (thanks to Ramstud)
-   update dynamic fields form 1 template with required dynamic fields and server + live validation
Bug Fix:
- PHP warning with button group + label
- PHP warning with inline forms

version 3.1 (07/2017)


New Features:
- add $combine_and_compress argument to printIncludes() function to combine and minify all plugin dependencies (css & js files)
  (default: true) - details at https://www.phpformbuilder.pro/documentation/class-doc.php#printIncludes
- add Foundation framework options and templates
- add the Nice Check plugin to style Radio buttons and Checkboxes
- add templates theme switcher for Bootstrap & Material forms
Improvements:
- auto combine and minify all plugin dependencies (css & js files)
- make Recaptcha fully responsive
- allow to wrap radiobuttons with addInputWrapper function
- switched setPluginsUrl() function to public and add "$forced_url = ''" optional argument to allow manual plugins URL configuration if user's server is misconfigured.
- escaped commas are now recognized in dependent fields (values with commas can be escaped)
- rename the "dependent fields" plugin to "dependent fields" (sorry ... confusion with French spelling ...)
Bug Fix:
- fix issues with complex nested dependent fields and jQuery live validation
- fix an issue with custom class attribute and addCountrySelect function
- fix an issue with radio button attributes on material forms
- fix css overflow with lists into dependent fields

version 3.0 (Major release - 05/2017)

IMPORTANT

More efficient & straightforward than ever, this release contains code simplifications, new features, and new syntax to send emails.
To upgrade from version 2.X, see Upgrade PHP Form Builder section.


New Features:
- add static function Form::validate('form-id');
  Form::validate function instantiates validator and auto-validate required fields
- merge sendAdvancedMail and sendMail function
- add helperWrapper option
- add addHelper($helper_text, $element_name) shortcut function
- add the "inverse" argument to Dependent fields
- auto-disable dependent fields when they're hidden
- add custom plugins config directory
- public non-static methods can now be all chained
Improvements:
- auto-locate plugins directory & URL (phpformbuilder/plugins-path.php has been removed)
- add optional $fieldset_attr & $legend_attr arguments to startFieldset() function
- improved jQuery validation with Bootstrap collapsible panels
- now, up to 12 fields can be grouped into the same container
- add Validator Spanish language (Thanks Hugo)
- minor performance improvements
Others:
- add tooltip-form template
- update templates according to new features
- update documentation

Version 2.3 (02/2017)


New Features:
- add jQuery real-time validation plugin ($50 value)
Improvements:
- better errors management on plugins path errors
- add support for several Recaptcha on the same page
Bug Fix:
- remove crossOrigin warning using the wordcharcount plugin
- solve a z-index issue with selectpicker & modal

Version 2.2.2 (01/2017)


Improvements:
- add support for several modal forms on the same page
- add support for several popover forms on the same page
- add several modal forms on same page templates (Bootstrap + Material)
- add several popover forms on same page templates (Bootstrap + Material)
- better errors management on plugins path errors
- minor improvements in documentation

Version 2.2.1 (01/2017)


Bug Fix:
- add "phpformbuilder/mailer/phpmailer/extras" folder to package, missing in previous release

Version 2.2 (01/2017)


Security:
- update PHP Mailer Class to the latest (5.2.21)
Improvements:
- auto-trigger dependent fields on form load
- improve the main form attributes compilation
Bug Fix:
- add one missing translation in de
- remove PHP warning on selects with no option
- fix missing line breaks in emails

Version 2.1 (10/2016)


New Features:
- add the Recaptcha plugin
- update the Fileupload plugin to its latest version
- add a new template default-db-values-form.php
- add a new template fileupload-test-form.php
- add default values [from database|from variables] in 'how-to' documentation
- add a 4th optional argument to group 4 inputs in the same wrapper
Bug Fix:
- missing required sign with radio and no classname

Version 2.0.3 (08/2016)


Improvements:
- Rewritten Dynamic Fields Template javascript to match any field
- update the sendAdvancedMail() function to convert posted arrays to comma-separated lists in emails automatically

Version 2.0.2 (08/2016)


Bug Fix:
- fix dependent select with checkboxes
- fix custom attributes with checkbox groups

Version 2.0.1 (08/2016)


Improvements:
- Add Dynamic Fields Templates
Bug Fix:
- fix php7 warning (upload button not shown) using addFileUpload() function

version 2.0 (Major release - 07/2016)

IMPORTANT

All features are backward-compatible, except addCheckbox() function: 3rd argument ($name) has been removed.

  • Previous versions: $form->addCheckbox($group_name, $label, $name, $value, $attr = '');
  • New version 2.0: $form->addCheckbox($group_name, $label, $value, $attr = '');

(see examples or main class doc for more information).


New Features:
- add the Material Design plugin
- add Material Design templates
- add the Modal plugin
- add the Popover plugin
- add the Pickadate plugin + Pickadate Material
- add XSS protection
- add CSRF protection
        (documentation: https://phpformbuilder.pro/documentation/class-doc/index.html#security)
- add two functions for dependent fields:
        -   startDependentFields($parent_field, $show_values) ;
        -   endDependentFields();
- add Autocomplete plugin
- add support for input grouped with buttons (i.e., search input + btn)
- automatic scroll to the first field with an error
- add a third argument to the render function to allow returning form code instead of echo
Improvements:
- restructure package
- rewrite all documentation
- add PHP beginner's guide
- rewrite & optimize several Form functions
- better error fields rendering for grouped fields
- zero value will not be anymore considered empty
- checkboxes are automagically converted to an array of indexed values.
- add a new argument to render, printJsCode & printIncludes functions to return code instead of echo.
- beautify output if debug enabled
Updates:
- update the Bootstrap Select plugin to the latest version (v1.10.0)
Bug Fix:
- fix validation custom error message with 'between' function
- fix validation errors with dates + hasSymbol function
- fix a wrong comma added in some cases with select option attr.

Version 1.3.1 (10/2015)


Bug Fix:
- fix reply_to issue in sendAdvancedMail function

Version 1.3 (05/2015)


Improvement:
- improve register / clear system
New Features:
- add the Country select plugin
- add the Bootstrap select plugin
- add the Passfield plugin
- add the Icheck plugin

Version 1.2.7 (03/2015)


Bug Fix:
- fix the word-char-count plugin used on the same page with tinyMce + word-char-count.

Version 1.2.6 (03/2015)


Improvement:
- register array fieldnames in session to keep values when validation fails.

Version 1.2.5 (02/2015)


Improvement:
- add word-char-count support with tinyMce

Version 1.2.4 (12/2014)


New Features:
- add support for select into input groups
Improvements:
- input groups documentation & examples in fully detailed

Version 1.2.3 (12/2014)


New Features:
- add database utilities with the Mysql class
- add tinyMce (Rich Text Editor) plugin with responsivefilemanager
Improvements:
- add debug argument to print css/js includes & js code on screen
- support multiple fileUploads on the same page

Version 1.2.2 (10/2014)


New Feature:
- add word/character count plugin
Bug Fix:
- Fix object context error with PHP < 5.4

Version 1.2.1 (10/2014)


Updates:
- improve email sending with attached files

Version 1.2 (10/2014)


New Features:
- add the sendMail function
- add the sendAdvancedMail function
- add the groupInputs function
- add the btnGroupClass option

Updates:
- update the fileUpload plugin to the last version

Bugs Fixes:
- Fix default checkbox wrapper HTML
- Fix plugin path with only fileUploads

Version 1.1 (09/2014)


Bugs Fixes:
- Fix Validator compatibility with 32/64 bit systems
- Fix object context error with PHP < 5.4

Version 1.0 (09/2014)


PSR2 Standard support
Check for security vulnerabilities
Add documentation