phpformbuilderMain form builder files, including all the plugins
databaseContains the DB class. It is not required if you have no database.
mailerContains PHPMailer class, the email templates, and utilities to sanitize the contents of the emails and inline the emails' CSS.
pluginsContains all the plugins. You can remove the ones you don't use in your forms.
plugins-configContains all the plugins' configuration files ("domready" codes stored into XML files). You can remove the ones you don't use in your forms.
plugins-config-customEmpty folder to store your plugin configurations files if you customize.
traitsSeparate parts (PHP traits) of the main class.
FormExtended.phpExtends PHP Form Builder's main class with useful shortcut functions.
register.phprequired to register & activate your PHP Form Builder copy.
server.phpfile used for debugging purposes if you encounter paths issues on your server.
Features
Form generation with complex layout capabilities (horizontal, vertical, inline)
PHP Form Builder generates clean HTML5 markup, with separates functions to render form, generate CSS and JS code, so you can render them separately (generally in <head> or just before </body>).
Creates Bootstrap 4 Forms, Bootstrap 5 Forms, Bulma Forms, Foundation Forms, Material Design Forms, Tailwind Forms, uiKit Forms.
Compatible with any framework or can be used standalone.
Accepts any HTML5 form elements, including fieldsets, multiple selects, optgroups, button groups, ...
Allows customizing HTML with wrappers, IDs, classes and attributes, JavaScript events, custom code anywhere.
Server-side validation can be done on any destination page; errors are stored in the PHP session.
Sends your emails with a simple or advanced function.
Detects and replaces posted values in default or custom HTML/CSS template. Uses PHPMailer and Emogrifier to inline CSS.
Uses PHPMailer with or without SMTP and Emogrifier to inline CSS.
XSS / CSRF Protection
Database class included to prefill fields with values from your database easily, Insert/Update/Delete elements using posted values.
Memorization/recall of any custom configuration for each plugin
You can easily add any other external plugin (see plugins section).
PHP Form Builder automatically adds the needed CSS and JS files to your page when you activate a plugin.
$form = new Form('my-form', 'horizontal', 'novalidate', 'tailwind');
UIKit
$form = new Form('my-form', 'horizontal', 'novalidate', 'uikit');
No framework
Add the minimal Bootstrap 5 CSS to your page head, then you can build your forms with Bootstrap 5.
This style sheet only includes what is necessary to layout your responsive forms and will not break anything in the other parts of your pages.
<head>
// link to the minimal Bootstrap 5 CSS
<link rel="stylesheet" href="/phpformbuilder/templates/assets/bootstrap5-phpfb/css/bootstrap5-phpfb.min.css">
</head>
<?php
// Then you can build your form
$form = new Form('my-form', 'horizontal', 'novalidate');
If you want to use PHP Form Builder on several websites, you've got to buy a new license for each one.
Standard license vs. extended license
The Standard license allows two installations to run simultaneously: one for your local development and one for your production server.
We offer special prices for agencies and professional developers (up to 50%) with the Extended license. The details are available here: https://1.envato.market/qKq4g
New Features:
- add the code for Recaptcha to be properly loaded in Ajax forms
Improvements:
- add php type hinting and enable PHP strict_types
- fix PHP 8.3 deprecation warnings
- review PHP Standard compliance with PHPCS and PHPCBS - Standard:PHPCompatibility 7.4-8.3
- add SQL group_by clause in DB->select() '$extras' argument
- update the Signature Pad plugin to the latest version (v4.1.6)
- add the 'data-height' attribute to the Signature Pad input
Bug Fix:
- repair the database getLastInsertId() function
- fix "update" queries using the same fieldname in both values and where clause
- fix Deprecated error in class.fileuploader.php
version 5.2.1 (01/2023)
New Features:
- Support of different RDBMS with PDO drivers (MySQL/MariaDB, Oracle, PostgreSQL, Firebird)
- add new functions to the database PDO wrapper: https://www.phpformbuilder.pro/documentation/php-pdo-database-class.php
Improvements:
- Improve Dependent fields events management & performance
- handle required fields validation inside nested dependent fields
Bug Fix:
- The events on inputs with the Pretty checkbox plugin enabled will now work as expected
- update the Passfield plugin to solve a Popover bug with the latest Bootstrap
- memorization of the 'inline' checkbox/radio value in the drag & drop form builder
version 5.2 (10/2022)
New Features:
- add new functions to the database PDO wrapper: https://www.phpformbuilder.pro/documentation/php-pdo-database-class.php
- add the "limit" argument to the "select" function of the database PDO wrapper
- add the getOptions() function to show the list of the current options (or single/multiple options values)
Improvements:
- add the "utf-8" charset in the DB connection settings
- upgrade the Slimselect plugin to the latest version v1.27.1
Bug Fix:
- Dependent fields will not be posted anymore when they're hidden
- fix the broken links in the index.html if the Codecanyon package
version 5.1 (07/2022)
New Features:
- add ability to copy (duplicate) fields in the Drag and Drop form builder
Improvements:
- add max-height + vertical scrollbars to the Drag and Drop form builder
- disable the hcaptcha's recaptcha compat option
- update the template's ajax-loaded-multiple-forms
- update the Select2 plugin to its latest version 4.1.0-rc.0
Bug Fix:
- edit the intltelinput Javascript to set the full phone value in real time (was buggy since the last plugin upgrade)
- fix formValidation plugin not revalidating after removing file with fileuploader when upload limit is set to 1
version 5.0.6 (03/2022)
New Features:
- ability to center the HCaptchas with the Drag & Drop
Improvements:
- add a "no action" option in the drag & drop for the form action after validation
- add a regexp and helper text to validate the components names entered by the user in the Drag & Drop
Bug Fix:
- fix use of array_key_last with php < 7.3
- fix formvalidation code for Tinymce required fields
- remove Tinymce from the compiled Javascript to avoid 404 errors on Tinymce dependencies
version 5.0.5 (03/2022)
Improvements:
- show the warning message on file uploader failure
- add a warning message in the drag & drop on database update if no field has been specified in the WHERE clause
- show the HTML code in the drag & drop HTML components
- add "copy" buttons to all the code blocks in drag & drop and documentation
Bug Fix:
- fix paths of the file uploader email attachments generated by the drag & drop form builder
- fix and improve the plugins loading system after POST with Ajax
- fix the database insert code generated by the drag & drop
- fix the database update code generated by the drag & drop
- fix script loading & triggering issues with Ajax
version 5.0.4 (03/2022)
Improvements:
- Improve the drag & drop layout
Bug Fix:
- fix the File uploader code with drag & drop and Ajax
version 5.0.3 (03/2022)
Improvements:
- add instructions for CMS users in the Quickstart Guide
- remove Typography CSS from the custom minimal Bootstrap 5 CSS version (templates/assets/bootstrap5-phpfb)
- replace the jQuery code generated by the Drag & drop form builder with a clean Vanilla JavaScript code
Bug Fix:
- replace a stupid white text on white background in the drag & drop form code modal
- edit the LCSwitch plugin to make it work with inputs inside labels
- add the Materialize base JavaScript, which was missing when loading forms with Ajax
version 5.0.2 (03/2022)
Bug Fix:
- solve a bug with the file uploader & images
version 5.0.1 (03/2022)
New Features:
Improvements:
- add instructions for CMS users in the Quickstart Guide
Bug Fix:
- replace a stupid white text on white background in the drag & drop form code modal
- edit the LCSwitch plugin to make it work with inputs inside labels
version 5.0 - Major update (03/2022)
- upgrade to Bootstrap 5
- remove jQuery except for the plugins that require it
- add Bulma configuration & templates
- add Tailwind configuration & templates
Plugins:
- update all the plugins to their latest version
- rewrite all the jQuery instantiation codes in Vanilla JS for all non-jQuery plugins (in plugins-config/*.xml files)
- add a new Accordion plugin for accordion step forms
- replace jQuery autocomplete by autoComplete.js (vanilla js)
- replace jQuery captcha (realPerson) by js-captcha (vanilla js)
- add jsCaptcha server-side validation
- add hCaptcha plugin
- remove the old recaptcha v2 plugin
- replace the jQuery-Color-Picker by a new colorpicker plugin (vanilla js)
- rewrite the Dependent Fields jQuery plugin in vanilla js
- replace the modal plugin by a new lightweight accessible vanilla js modal plugin
- rewrite the Nice Check jQuery plugin in vanilla js
- replace the Popover and jQuery Tooltip plugin with the amazing vanilla js TippyJs
- activate plugins with data-attributes instead of classnames to avoid conflicts. ie: 'data-input-spinner=true' instead of 'class=input-spinner'
- update & rewrite the lcSwitch JavaScript & replace themes by data-attributes (data-oncolor and data-oncss)
- improve the website accessibility with the new excellent Chrome CSS Overview tool
- remove the "dist" folders in the plugins folders and move the files directly in thir parent folder
- update Bootswatch themes and add them to the Bootstrap 4 + Bootstrap 5 templates
Functions & code:
- replace the MySQL class with the PDO version (https://www.phpclasses.org/package/10844-PHP-Access-MySQL-databases-using-the-PDO-extension.html)
- add a new addheading() method
- add a new buildAlert() static method
- add a new addTimeSelect() method
- remove the unused 'type' argument in addFileUpload() function
- improve the 'sent_message' option behaviour in the sendMail() method
- replace the centerButtons() function with the new centerContent() function
- rename the groupInputs() function by groupElements() for a better consistency
- remove the form inline layout - use horizontzal with grouped fields instead
- split the Form class into PHP Traits to improve the readability of the code and to group the functions in a logical way
- lint code with PHPCS & Sonarlint
Templates:
- add new templates for each framework
- replace All the jQuery code with Vanilla JS code
- replace the complex "email-styles" form with a basic "email-templates" form - easier to understand
Drag & drop:
- Complete update with integration of new frameworks, plugins and features
Responsive File Manager is under Creative Commons Attribution-NonCommercial 3.0 Unported License.
The author kindly allowed me to include it with PHP Form Builder.
PHP Form Builder users can use it without limitation for non-commercial projects.
If you want to use Responsive File Manager in commercial projects, don't hesitate to contact the author and ask him for his agreement. A small donation is welcome.
About
I'm a french web developer; I work on many enthusiastic projects for clients as a freelancer, mainly handmade websites or web applications.
I spend time every day helping people using PHP Form Builder worldwide.