<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>Web-Site-Scripts.com - FPP Basics</title>
        <link>https://www.web-site-scripts.com/knowledge-base/category/22</link>
        <description><![CDATA[Root / Form Processor Pro / Manual / 5.x / FPP Basics]]></description>
        <language>en-us</language>
        <generator>KnowlageBase RSS Generator</generator>

         
                <item>
                        <title>Package Contents</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00200</link>
                                    <description><![CDATA[<h1><font color="#000000">Package Contents</font></h1><ul><li>fpp-v5.zip - Archive of our Form Processor Pro Download Package</li><ul><li>fpp/ - Main Form Processor Pro folder with all required files for proper work. You must upload this folder to your public folder (www) on your web server.</li><ul><li>sample-forms/ - Folder with examples of typical forms. Feel free to use and change them for your needs.</li><ul><li>fpp/ - Form Processor Pro configured to serve sample forms. You should upload this folder to your web server with other sample-forms folder content to see how sample forms work.</li></ul><li>attachments/ - It is temporary folder for user uploads and files that you would like to attach in emails.</li><li>classes/ - Classes are core files of Form Processor Pro. <br></li><li>install/ - Initial configuration script.</li><li>lang/ - Contains language files (translations) of all available languages for error messages. You can change language in a moment by changing only 1 string in configuration file. Please refer to “Language Settings”.</li><li>plugins/ - Plug-ins directory. Each plug-in refers to certain functionality of Form Processor Pro.</li><li>tmp/&nbsp; - Form Processor Pro use this folder to store temporary files that may be needed during form processing, like PDF, XLS generated files, for counting unique submissions etc.</li><li>.htaccess - .htaccess file prevent unauthorized access to the folder contents from the web.</li><li>captcha.img.php - Provides CAPTCHA anti-spam protection.</li><li>config.php - One and only configuration file of Form Processor Pro and forms. It has simple structure where you should specify all your forms and their settings, as well as global settings.</li><li>index.php - Main Form Processor Pro executable file. All forms' actions should refer to this file. Like: &lt;form name="my_form" action="URL_To_This_File"&gt;</li></ul><li>manual/ - This folder holds the HTML manual. In order to read it you should open index.html file from this folder.</li></ul></ul>]]></description>
                                    <pubDate>Tue, 16 Jun 2009 14:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00200</guid>
                    </item>
                <item>
                        <title>Language Settings</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00182</link>
                                    <description><![CDATA[<h1>Language Settings<br></h1>
<h2>Adding your own language<br></h2>
<p>To add your own language, you have to create a new language file in fpp/lang</p>
<p>To do that just copy the previous en.lang.php file and rename to ##.lang.php , where ## is a two letter country code, e.g. fr.lang.php for France.</p>
<p>Then you have to translate the right part of the php file to the language selected.</p>
<p>Syntax:</p>
<div class="preformatted">
<div class="preformattedContent">$l ['var_name'] = 'string'</div></div>
<p>Example:</p>
<div class="preformatted">
<div class="preformattedContent">$l ['file_permissions'] = 'File Permissions';</div></div>
<p>should be in French:</p>
<div class="preformatted">
<div class="preformattedContent">$l ['file_permissions'] = 'File Permis';</div></div>
<div class="info">
<div class="infoHeader">Note:</div>
<div class="infoContent">
You have to leave '%s' signs and escape special characters (e.g. ' to \' and \ to \\) for the FPP v5 to work properly.</div></div>
<p>Example:</p>
<div class="preformatted">
<div class="preformattedContent">Don't&nbsp; =&nbsp; don\'t<br>
‘configure the "MySQL" server‘&nbsp; =&nbsp; ‘configure the \"MySQL\" server ‘</div></div>
<h2>Changing the Language</h2>
<p>You can choose your language with the “language” setting.</p>
<p>Example (config file):</p>
<div class="preformatted">
<div class="preformattedContent">language = en</div></div>
<p>Result:</p>
<div class="preformatted">
<div class="preformattedContent">Sets the English language for all Form Processor Pro messages.</div></div>]]></description>
                                    <pubDate>Tue, 16 Jun 2009 14:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00182</guid>
                    </item>
                <item>
                        <title>What are actions, validations, etc.?</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00116</link>
                                    <description><![CDATA[<p>FPP v5 has several groups of features that help to process any form with very sophisticated requests. These groups are:</p>
<ul><li><a target="" href="ARTICLE_URL#127##AA-00166#">Field Validations</a> - validation rules, responsible for validating user input (e.g.: email validation, ZIP code validation)</li><li><a target="" href="ARTICLE_URL#111##AA-00150#">Actions</a> - actions that are done after form submission (e.g.: send an email, put data in a database, open a web page)</li><li><a target="" href="ARTICLE_URL#129##AA-00168#">Modifiers</a> - modifiers pre-format user inputted data by certain modification rules (e.g.: capitalize first letters of second name, set all letters of a special field to lowercase)</li></ul>
<p>Click on the correspondent group for more information and the features reference.
</p>]]></description>
                                    <pubDate>Thu, 11 Jun 2009 14:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00116</guid>
                    </item>
                <item>
                        <title>Initial Configuration Script</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00115</link>
                                    <description><![CDATA[<p>We have included an Initial Configuration Script in the package in order to simplify FPP configuration for further form processing.&nbsp; Using this script you will easily do the following:</p>
<ol><li>Check permissions for the required files and folders</li><li>Configure the Email Sending feature (set the correct SMTP server)</li><li>Configure the Database settings (if you intend to save form submissions to the database)</li><li>Change the password for this configuration script</li></ol>
<p>The script stores all parameters in the config.php file. And you can simply edit this file yourself if you understand what are you are doing and know your SMTP and DB parameters.</p>
<p>Run the Initial Configuration Script and follow the instructions in order to perform the initial Form Processor Pro configuration. The Initial Configuration Script is located in the fpp/install folder. <br></p>
<p>E.g.: If you've uploaded the fpp folder to the www root folder of your www.yourdomain.com&nbsp; server, you can access the Initial Configuration Script via www.yourdomain.com/fpp/install/index.php.</p>
<p>When you've completed the Initial Configuration Script wizard, you are ready to <a target="" href="ARTICLE_URL#105##AA-00144#">set up your first form</a>.
</p>]]></description>
                                    <pubDate>Thu, 11 Jun 2009 14:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00115</guid>
                    </item>
                <item>
                        <title>Modifiers</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00168</link>
                                    <description><![CDATA[<h1>Modifiers<br></h1><ol><li><a target="" href="#Modifiers%20overview">Modifiers overview</a></li><li><a target="" href="#Modifiers%20Reference">Modifiers Reference</a></li><ol><li><a target="" href="#capitalize">capitalize</a></li><li><a target="" href="#count_characters">count_characters</a></li><li><a target="" href="#count_paragraphs">count_paragraphs</a></li><li><a target="" href="#count_sentences">count_sentences</a></li><li><a target="" href="#count_words">count_words</a></li><li><a target="" href="#csv_shielding">csv_shielding</a><br></li><li><a target="" href="#date_format">date_format</a></li><li><a target="" href="#default">default</a></li><li><a target="" href="#floorval">floorval</a><br></li><li><a target="" href="#indent">indent</a></li><li><a target="" href="#lower">lower</a></li><li><a target="" href="#nl2br">nl2br</a></li><li><a target="" href="#regex_replace">regex_replace</a></li><li><a target="" href="#replace">replace</a></li><li><a target="" href="#roundval">roundval</a><br></li><li><a target="" href="#spacify">spacify</a></li><li><a target="" href="#string_format">string_format</a></li><li><a target="" href="#strip">strip</a></li><li><a target="" href="#strip_tags">strip_tags</a></li><li><a target="" href="#truncate">truncate</a></li><li><a target="" href="#upper">upper</a></li><li><a target="" href="#wordwrap">wordwrap</a></li></ol><li><a target="" href="#Combining%20modifiers">Combining modifiers</a></li></ol><h2><a  name="Modifiers overview"></a>Modifiers overview</h2><p>Modifiers used to perform certain transformations with user input prior to inserting results into a template or generating output.</p><p>Variable modifiers can be applied to any variable in a template tag. To apply a modifier, specify the value followed by the | (pipe) and the modifier name. A modifier may accept additional parameters that affect its behaviour. These parameters follow the modifier name and are separated by colons (:) and surrounded by double-quotes.</p><p>Examples:</p><div class="preformatted"><div class="preformattedContent">{#title|upper#}<br>{#title|truncate:40:"..."#}<br>{#title|lower#}</div></div><p>The first example makes the value of the title variable all uppercase. The second truncates the value to 40 characters and add (…) at the end of the string and the third makes the value of the title variable all lowercased.</p><h2><a  name="Modifiers Reference"></a>Modifiers Reference</h2><h3><a  name="capitalize"></a>capitalize</h3><p>This is used to capitalize the first letter of all words in a variable.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:john smith<p>Template:</p><p>{#name|capitalize#}</p><p>Output:</p>John Smith</div></div><h3><a  name="count_characters"></a>count_characters<br></h3><p>This is used to count the number of characters in a variable.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>john smith</p><p>Template:</p><p>{#name|count_characters#}</p><p>Output:</p>9</div></div><h3><a  name="count_paragraphs"></a>count_paragraphs<br></h3><p>This is used to count the number of paragraphs in a variable.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>This is a test paragraph.<br>The next paragraph</p><p>Template:</p><p>{#article|count_paragraphs#}</p><p>Output:</p>2</div></div><h3><a  name="count_sentences"></a>count_sentences<br></h3><p>This is used to count the number of sentences in a variable.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>His name is John Smith. He is a good man.</p><p>Template:</p><p>{#ext|count_sentences#}</p><p>Output:</p>2</div></div><h3><a  name="count_words"></a>count_words<br></h3><p>This is used to count the number of words in a variable.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>His name is John Smith. He is a good man.</p><p>Template:</p><p>{#text|count_words#}</p><p>Output:</p>10</div></div><h3><a  name="csv_shielding"></a>csv_shielding<br></h3><p>This is used to shield double quotes when using CSV file.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent"><p>Input:</p><p>His name is "John Smith". He is a good man.</p><p>Template:</p><p>"{#text|csv_shielding#}"</p><p>Output in file:</p><p>"His name is ""John Smith"". He is a good man."</p><p>Output in Excel:</p><p>His name is "John Smith". He is a good man.</p></div></div><h3><a  name="date_format"></a>date_format<br></h3><p>Returns a string formatted according to the given format string. Use variable %TIMESTAMP to get a timestamp</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Template:<p>{#%TIMESTAMP|date_format:"m/d/y"#}</p><p>Output:</p>12/15/2006</div></div><p>You can also use characters from following tables to customize the "date_format" modifier.</p><div class="source"><div class="sourceHeader" align="center">The following characters are recognized in the date_format modifier</div><div class="sourceContent"><table class="simple"><tbody><tr><td>d</td><td>Day of the month, 2 digits with leading zeros (01 to 31)</td></tr><tr><td>D</td><td>A three letter textual representation for a day (Mon through Sun)</td></tr><tr><td>j</td><td>Day of the month (number) without leading zeros (1 to 31)</td></tr><tr><td>l (lowercase 'L')</td><td>A full textual representation of the day of the week (Sunday through Saturday)</td></tr><tr><td>N</td><td>ISO-8601 numeric representation of the day of the week (1 - for Monday - through 7 - for Sunday)</td></tr><tr><td>S</td><td>English two characters ordinal suffix for the day of the month (st, nd, rd or th. Works well with "j")</td></tr><tr><td>w</td><td>Numeric representation of the day of the week (0&nbsp; - for Sunday - through 6 - for Saturday)</td></tr><tr><td>z</td><td>The day of the year (0 through 365)</td></tr><tr><td>W</td><td>ISO-8601 week number of the year with weeks starting on Monday (Example: 42 - the 42nd week in the year)</td></tr><tr><td>F</td><td>A full textual representation of a month, such as January or March (January through December)</td></tr><tr><td>m</td><td>Numeric representation of a month, with leading zeros (01 through 12)</td></tr><tr><td>M</td><td>A short three letter textual representation of a month (Jan through Dec)</td></tr><tr><td>n</td><td>Numeric representation of a month, without leading zeros (1 through 12)</td></tr><tr><td>t</td><td>Number of days in the given month (28 through 31)</td></tr><tr><td>L</td><td>Whether it's a leap year (1 if it is a leap year, 0 otherwise.)</td></tr><tr><td>o</td><td>ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. (Examples: 1999 or 2003)</td></tr><tr><td>Y</td><td>A full four digit numeric representation of a year (Examples: 1999 or 2003)</td></tr><tr><td>y</td><td>A two digit representation of a year (Examples: 99 or 03)</td></tr><tr><td>a</td><td>Lowercase Ante Meridiem and Post Meridiem (am or pm)</td></tr><tr><td>A</td><td>Uppercase Ante Meridiem and Post Meridiem (AM or PM)</td></tr><tr><td>B</td><td>Swatch Internet time (000 through 999)</td></tr><tr><td>g</td><td>12-hour format for an hour without leading zeros (1 through 12)</td></tr><tr><td>G</td><td>24-hour format for an hour without leading zeros (0 through 23)</td></tr><tr><td>h</td><td>12-hour format for an hour with leading zeros (01 through 12)</td></tr><tr><td>H</td><td>24-hour format for an hour with leading zeros (00 through 23)</td></tr><tr><td>i</td><td>Minutes, with leading zeros (00 to 59)</td></tr><tr><td>s</td><td>Seconds, with leading zeros (00 through 59)</td></tr><tr><td>u</td><td>Microseconds (Example: 54321)</td></tr><tr><td>e</td><td>Timezone identifier (Examples: UTC, GMT, Atlantic/Azores)</td></tr><tr><td>I (capital i)</td><td>Whether or not the date is in daylight savings time (1 if Daylight Saving Time, 0 otherwise.)</td></tr><tr><td>O</td><td>Difference from Greenwich Meridian Time (GMT) in hours (Example: +0200)</td></tr><tr><td>P</td><td>Difference Greenwich Meridian Time (GMT) with a colon between hours and minutes (Example: +02:00)</td></tr><tr><td>T</td><td>Time zone abbreviation (Examples: EST, MDT ...)</td></tr><tr><td>Z</td><td>Time zone offset in seconds. The offset for time zones west of UTC is always negative, and for those east of UTC is always positive. (-43200 through 50400)</td></tr></tbody></table></div></div><div class="info"><div class="infoHeader">Note:</div><div class="infoContent">Unrecognized characters in the format string will be printed as-is.</div></div><h3><a  name="default"></a>default<br></h3><p>This is used to set a default value for a variable. If the variable is empty, the given default value is printed instead. Default takes one argument. <br></p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>Template:</p><p>{#name|default:"-=none=-"#}</p><p>Output:</p>-=none=-</div></div><h3><a  name="floorval"></a>floorval<br></h3><p>Deletes decimal part of digit<br></p><p>Example:</p><div class="preformatted"><div class="preformattedContent"><p>Input:</p><p>123.834<br></p><p>Template:</p><p>{#name|floorval#}</p><p>Output:</p>123</div></div><h3><a  name="indent"></a>indent<br></h3><p>This indents a string at each line (the default is 4). As an optional parameter, you can specify the number of characters to indent. As an optional second parameter, you can specify the character to use to indent with. (Use "\t" for tabs.) <br></p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>NJ judge to rule on nude beach.<br>Sun or rain expected today, dark tonight.<br>Statistics show that teen pregnancy drops off significantly after 25.&nbsp;&nbsp;&nbsp; <br></p><p>Template:</p><p>{#article|indent:10#}</p><p>Output:</p>NJ judge to rule on nude beach.<br>Sun or rain expected today, dark tonight.<br>Statistics show that teen pregnancy drops off significantly after 25.</div></div><h3 style=""><a  name="lower"></a>lower<br></h3><p>This is used to change a variable to lowercase.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>John SMITH&nbsp;&nbsp;&nbsp; <br></p><p>Template:</p><p>{#name|lower#}</p><p>Output:</p>john smith</div></div><h3><a  name="nl2br"></a>nl2br<br></h3><p>All line breaks will be converted to &lt;br&gt; tags in the given variable. It's very useful to output text area fields</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>John</p><p>Smith</p><p>Template:</p><p>{#name|nl2br#}</p><p>Output:</p>John&lt;br&gt;Smith</div></div><h3><a  name="regex_replace"></a>regex_replace<br></h3><p>A regular expression search and replace on a variable. Use the syntax for preg_replace() from the PHP manual.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>John Smith&nbsp;&nbsp;&nbsp; <br></p><p>Template:</p><p>{#name|regex_replace:"/h/":"H"#}</p><p>Output:</p>JoHn SmitH</div></div><h3><a  name="replace"></a>replace<br></h3><p>A simple search and replace on a variable.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>John Smith&nbsp;&nbsp;&nbsp; <br></p><p>Template:</p><p>{#name|replace:"John":"Samuel"#}</p><p>Output:</p>Samuel Smith</div></div><h3><a  name="roundval"></a>roundval<br></h3><p>Rounds a digit<br></p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>123.834<br></p><p>Template:</p><p>{#name|roundval#}</p><p>Output:</p>124</div></div><h3><a  name="spacify"></a>spacify<br></h3><p>Spacify is a way to insert a space between every character of a variable. You can optionally pass a different character (or string) to insert. <br></p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>John</p><p>Template:</p><p>{#name|spacify#}</p><p>Output:</p>J o h n</div></div><h3><a  name="string_format"></a>string_format<br></h3><p>This is a way to format strings, such as decimal numbers. Use the syntax for the sprintf PHP function for the formatting.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>2.43243252</p><p>Template:</p><p>{#num|string_format:"%.2f"#}</p><p>Output:</p>2.43</div></div><h3><a  name="strip"></a>strip<br></h3><p>This replaces all repeated spaces, new lines, and tabs with a single space, or with a supplied string</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>John&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Smith</p><p>Template:</p><p>{#name|strip#}</p><p>Output:</p>John Smith</div></div><h3><a  name="strip_tags"></a>strip_tags<br></h3><p>This strips out markup tags, basically anything between &lt; and &gt;.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>John &lt;b&gt;Smith&lt;/b&gt;</p><p>Template:</p><p>{#name|strip_tags#}</p><p>Output:</p>John Smith</div></div><h3><a  name="truncate"></a>truncate<br></h3><p>This truncates a variable to a character length (default is 80). As an optional second parameter, you can specify a string of text to display at the end of the string if the variable was truncated. The characters in the string are included with the original truncation length. By default, truncate will attempt to cut off at a word boundary. If you want to cut off at the exact character length, pass the optional third parameter of true.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>Two Sisters Reunite after Eighteen Years at Checkout Counter</p><p>Template:</p><p>{#article|truncate:30:"...":true#}</p><p>Output:</p>Two Sisters Reunite after E...</div></div><h3><a  name="upper"></a>upper<br></h3><p>This is used to change a variable to uppercase.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>John Smith</p><p>Template:</p><p>{#name|upper#}</p><p>Output:</p>JOHN SMITH</div></div><h3><a  name="wordwrap"></a>wordwrap<br></h3><p>This wraps a string to a column width (default is 80). As an optional second parameter, you can specify a string of text to wrap the text to the next line (default is carriage return \n). By default, wordwrap will attempt to wrap at a word boundary. If you want to cut off at the exact character length, pass the optional third parameter of true.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>Blind woman gets new kidney from dad she hasn't seen in years.</p><p>Template:</p><p>{#article|wordwrap:"30":"\n":"true"#}</p><p>Output:</p><p>Blind woman gets new kidney</p><p>from dad she hasn't seen in</p>years.</div></div><h2><a  name="Combining modifiers"></a>Combining modifiers<br></h2><p>You can apply any number of modifiers to a variable. They will be applied in the order they are combined, from left to right. They must be separated with a | (pipe) character.</p><p>Example:</p><div class="preformatted"><div class="preformattedContent">Input:<p>Smokers are Productive, but Death Cuts Efficiency</p><p>Template:</p><p>{#article#}<br>{#article|upper|spacify#}<br>{#article|lower|spacify|truncate#}<br>{#article|lower|truncate:30|spacify#}<br>{#article|lower|spacify|truncate:30:"..."#}</p><p>Output:</p>Smokers are Productive, but Death Cuts Efficiency.<br>S M O K E R S&nbsp;&nbsp; A R E&nbsp;&nbsp; P R O D U C T I V E ,&nbsp;&nbsp; B U T&nbsp;&nbsp; D E A T H&nbsp;&nbsp; C U T S&nbsp;&nbsp; E F F I C I E N C Y .<br>s m o k e r s&nbsp;&nbsp; a r e&nbsp;&nbsp; p r o d u c t i v e ,&nbsp;&nbsp; b u t&nbsp;&nbsp; d e a t h&nbsp;&nbsp; c u t s...<br>s m o k e r s&nbsp;&nbsp; a r e&nbsp;&nbsp; p r o d u c t i v e ,&nbsp;&nbsp; b u t ...<br>s m o k e r s&nbsp;&nbsp; a r e&nbsp;&nbsp; p...</div></div>]]></description>
                                    <pubDate>Wed, 10 Jun 2009 14:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00168</guid>
                    </item>
                <item>
                        <title>Templates Syntax</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00118</link>
                                    <description><![CDATA[<p>Templates are email templates, preview pages, thank you pages or any page following the first form page.</p>
<p>All template variable tags are enclosed within delimiters. These delimiters are&nbsp; {#&nbsp; and&nbsp;&nbsp; #}. All content outside of delimiters is displayed as static content, or just as written. When Form Processor Pro encounters tags in templates, it attempts to interpret them, and displays the appropriate values in their place. The first variable in {#&nbsp; #} is usually the name of a field whose value should be displayed. </p>
<p>Examples:</p>

<p>Lets say you have a text field named "first_name" on your form:</p>
<div class="preformatted">
<div class="preformattedContent">&lt;input type="text" name="first_name"&gt;</div></div>
<p>And you need to show the value in a preview. In the preview page you should set:&nbsp;</p>
<div class="preformatted">
<div class="preformattedContent">First name: {#first_name#}</div></div>
<p>And after user submitted the form and filled the field "first_name" with John, he will see on the preview page:&nbsp;</p>
<div class="preformatted">
<div class="preformattedContent">First name: John</div></div>
<p>It is very simple!</p>]]></description>
                                    <pubDate>Wed, 10 Jun 2009 14:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00118</guid>
                    </item>
                <item>
                        <title>Upgrading My Existing Form from FPP v4 to FPP v5</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00146</link>
                                    <description><![CDATA[<h1>Upgrading My Existing Form from FPP v4 to FPP v5<br></h1>
<ol>
<li><a target="" href="#Introduction">Introduction</a></li>
<li><a target="" href="#1st%20Step">Initial Configuration Script</a></li>
<li><a target="" href="#2nd%20Step">Editing Pages</a></li>
<li><a target="" href="#3rd%20Step">Editing Templates</a></li>
<li><a target="" href="#4th%20Step">Editing config.php</a></li></ol>
<h2><a  name="Introduction"></a>Introduction</h2>
<p>Here, we'll guide you through the process of upgrading your existing form from Form Processor Pro v4 to Form Processor Pro v5. <br></p>
<p>To upgrade any form with Form Processor Pro, you only need to do four easy things:</p>
<ol><li>Point your form to FPP and give your form a name. You should point the ACTION attribute of your form to the fpp directory and give your form a unique name by inserting a HIDDEN field in the form's HTML just after FORM tag.</li><li>Handle with error messages. Put the &lt;!-- FPP_ERROR --&gt; tag in your form's page in the where you'd like to display error messages. <br></li><li>Create the required Email, HTML and/or Log templates. Use {# and #} brackets and hash signs to include any variable (field content) in the template. If you have a text field with name=email then you can use this variable in any template by putting it in brackets like this: {#email#}. This will be changed to the submitter's entered value after processing.</li><li>Edit simple config file with required configurations. Set actions to perform, validation rules etc. All available actions, validations and modifiers can be found in this manual.</li></ol>
<p>In this example we have a domain: mydomain.com and Form Processor Pro installed in the “fpp” public folder under the www root. In other words, Form Processor Pro can be accessed through: http://www.mydomain.com/fpp/index.php</p>
<h2><a  name="1st Step"></a>Initial Configuration Script</h2>
<p>Run the Initial Configuration Script and follow the instructions in order to perform initial Form Processor Pro configuration. The Initial Configuration Script (index.php) is located in the fpp/install folder.&nbsp;</p>
<p>E.g.: If you've uploaded the fpp folder to www root folder of your www.yourdomain.com&nbsp; server, you can access the Initial Configuration Script via www.yourdomain.com/fpp/install/index.php URL.</p>
<h2><a  name="2nd Step"></a>Editing Pages<br></h2>
<p>You need to add the &lt;base href...&gt; tag directly after the &lt;head&gt; tag in your form page.</p>
<p>This line will prevent trouble with images, css, and urls that may appear after page processing.</p>
<p>If your page has the URL "http://yoursite.com/path/page.html", you need to add to the page:</p>
<div class="preformatted">
<div class="preformattedContent">&lt;base href="http://yoursite.com/path/" /&gt;</div></div>
<p>Second, you need to change &lt;form action&gt; path to lead to the index.php file of Form Processor Pro v5, instead of the previous &lt;form action...&gt;. The form code should look like this:</p>
<div class="preformatted">
<div class="preformattedContent">&lt;form name="Simple" method="post" action="../fpp/index.php" enctype="multipart/form-data"&gt;</div></div>
<p>where ../fpp/index.php is the relative path from form the page to Form Processor Pro. It can also be an absolute path like this:</p>
<div class="preformatted">
<div class="preformattedContent">&lt;form name="Simple" method="post" action="http://yourdomain.com/fpp/index.php" enctype="multipart/form-data"&gt;</div></div>
<p>Put the &lt;!-- FPP_ERROR --&gt; into your page, to show any error resulting incorrect input, you may insert it anywhere you want the user to see the error on your form page.</p>
<p>If you have more than one form page, you need to repeat these actions for every page.</p>
<p>Then you need to name your form, as all configurations are stored in one configuration file, Form Processor Pro needs to differentiate one from another, therefore for this you need to add this line just after form tag &lt;form action...&gt;:</p>
<div class="preformatted">
<div class="preformattedContent">&lt;input type="hidden" name="fpp_form" value="form_name"&gt;</div></div>
<p>where 'form_name' will be name of your form. This line only needs to be added to the first page of your form.</p>
<p>If you used CAPTCHA in you forms, there should be lines like this in your form:</p>
<div class="preformatted">
<div class="preformattedContent">&lt;img src="../formprocessorpro.php?captcha"&gt;<br>&lt;input type="text" name="r_captcha" value=""&gt;</div></div>
<p>You should change the first line&nbsp; ("&lt;img src...&gt;) to:</p>
<div class="preformatted">
<div class="preformattedContent">&lt;img src="../fpp/captcha.img.php"&gt;</div></div>
<p>where ../fpp/captcha.img.php is the path from this web page to the captcha.img.php file in your fpp folder</p>
<p>The input field can remain unchanged, but write down the name of the input field where you want to check the CAPTCHA code, as you will later use it in the configuration file.</p>
<h2><a  name="3rd Step"></a>Editing Templates</h2>
<p>In Form Processor Pro v5, you need to use delimiters {# and #} instead of [ and ], so you need to open your templates in any plain text editor and change all the '[' bracket(s) to the '{#' and the ']' bracket(s) to the '#}' . So, if your email template looked something like this:</p>
<p>Previous email template:</p>
<div class="preformatted">
<div class="preformattedContent">To: "[firstname]" &lt;[email]&gt;<br>From: "My Company" &lt;info@mydomain.com&gt;<br>Subject: Thank you<br><br>Dear [firstname],<br>Here is information that you had filled in our form:<br>Name: [name]<br>Company Name: [company-name]<br>Contact Email: [email]
<p></p>

</div></div>
<p>It must be changed to this:</p>
<div class="preformatted">
<div class="preformattedContent">To: "{#firstname#}" &lt;{#email#}&gt;<br>From: "My Company" &lt;info@mydomain.com&gt;<br>Subject: Thank you<br><br>Dear {#firstname#},<br>Here is information that you had filled in our form:<br>Name: {#name#}<br>Company Name: {#company-name#}<br>Contact Email: {#email#}</div></div>
<h2><a  name="4th Step"></a>Editing config.php</h2>
<p>Now in order to correct your final configurations we have to teach FPP how we would like our form to be processed. To do so, we have to edit config.php located in the fpp directory.</p>
<div class="info">
<div class="infoHeader">Tip:</div>
<div class="infoContent">
In order to protect your email template files from undesirable browsing through HTTP, we suggest you place them in a separate folder and protect the folder from browsing. You can use the .htaccess file for this purpose on any Unix/Linux compatible host. Just add/create this file(.htaccess) in the folder with the email templates with the following content (you can also copy .htaccess file from the “tmp” or “attachments” folders of the fpp folders ):<br>
<div class="preformatted">
<div class="preformattedContent">&lt;Files *&gt;<br>Order allow, deny<br>Deny from all<br>&lt;/Files&gt;</div></div> <br>
You will protect yourself from email harvesting bots by doing this.<br>
On Windows based hosts, you can do this by setting corresponding permissions for the folder.</div></div>
<p>You need to open config.php file located in the fpp folder in any plain text editor, and add this line to the end of the file:</p>
<div class="preformatted">
<div class="preformattedContent">[form_name]</div></div>
<p>Where "form_name" is the name you gave the form in the FORM section of your web page HTML code.</p>
<p>This code designates where the form description starts. You can use the information from form.cfg file, but it needs to be modified. All lines that begin with '_error_path=' should be deleted, as errors now show on the form where the incorrect values are input.</p>
<p>The first line under form name should be:</p>
<div class="preformatted">
<div class="preformattedContent">page = ../path/formpage.html</div></div>
<p>Where formpage.html is the first page of your form, the path can be relative from config.php file to the page, it can be the absolute path, or you can use the URL of the page:</p>
<div class="preformatted">
<div class="preformattedContent">page = http://yourdomain.com/path/formpage.html</div></div>

<div class="info">
<div class="infoHeader">Note:</div>
<div class="infoContent">
You have full control over any server-side script execution on form pages. If you use a relative or absolute path to file (e.g.: "../form/file.html" or "/fpp/form/filename.php") Form Processor Pro will process it as a text file. No scripts (e.g.: PHP, ASP) will be executed on the page. However if you use the full URL (e.g.: "http://www.yoursite.com/path/file.html") Form Processor Pro will let the webserver execute all server-side scripts on the page, and then will parse the form. The PHP option "allow_url_fopen" must be enabled to allow this behavior.</div></div>
<p>Paste you code from form.cfg file into the config.php file under the form declaration line.&nbsp; You will now have lines like this:</p>
<div class="preformatted">
<div class="preformattedContent">_browser_out=preview.html<br>_send_email1=email.txt<br>_send_email2=email-autorespond.txt<br>_out_file=log.txt<br>_browser_out1=thank-you.html</div></div>
<p>You need to change '_browser_out=', '_browser_out1=' and so on to 'page = ' without any numbers.</p>
<div class="preformatted">
<div class="preformattedContent">page = http://yourdomain.com/preview.html<br>page = http://yourdomain.com/thank-you.html</div></div>
<p>All '_send_email#=' should be changed to 'email = ' also '_out_file=' should be changed to 'log_file = '</p>
<div class="preformatted">
<div class="preformattedContent">email = ../path/email.txt<br>email = ../path/email-autorespond.txt<br>log_file = ../path/log.txt</div></div>

<div class="info">
<div class="infoHeader">Note:</div>
<div class="infoContent">
All paths must be relative from to config.php, absolute paths, or URLs to the needed files.</div></div>
<p>For more information about actions refer to the <a target="" href="ARTICLE_URL#111##AA-00150#">Actions</a> chapter.</p>
<p>All validators now should be written into the config.php file in form description. Here are most popular and most useful validators:</p>
<p>To require a field to be filled:</p>
<div class="preformatted">
<div class="preformattedContent">required_fields = fieldname (Field Name), field2 (Second Field Name)</div></div>
<p>Please note that phrases in ( and ) brackets are only used in error messages, not of internal field names in the HTML. Thus,&nbsp;&nbsp;&nbsp; &nbsp;your error messages can be intuitive, user-friendly, and you can even use languages other than English! You can write the validation rules as one field per line or all in one string and separate field names by commas.</p>
<p>Thus:</p>
<div class="preformatted">
<div class="preformattedContent">required_fields = name (Full Name), email (Contact Email), subject (Subject)</div></div>
<p>or</p>
<div class="preformatted">
<div class="preformattedContent">required_fields = name (Full Name)<br>required_fields = email (Contact Email)<br>required_fields = subject (Subject)</div></div>
<p>These two examples will have the same effect - required form fields: name, email and subject.</p>
<p>In order to require only properly formatted emails in the email field we will use the “email_fields” validation rule, like we did above:</p>
<div class="preformatted">
<div class="preformattedContent">email_fields = email (Email Address)</div></div>
<p>To activate CAPTCHA in your form, add this line</p>
<div class="preformatted">
<div class="preformattedContent">captcha_field = r_captcha (Value from CAPTCHA)</div></div>
<p>where 'r_captcha' is the name of the field, where submitter should input the value from CAPTCHA</p>
<p>For more information about validation rules refer to the <a target="" href="ARTICLE_URL#127##AA-00166#">Field Validations</a> chapter.</p>
<div class="source">
<div class="sourceHeader" align="center">Sample content for the config.php file</div>
<div class="sourceContent">
&lt;?php header('Location: index.php'); ?&gt;<br>/* GLOBAL FPP SETTINGS - BEGIN. THESE SETTINGS ARE APPLIED TO ALL FORMS! */<br>smtp_server = localhost<br>smtp_port = 25<br>date_format = H:m d/m/y<br>/* GLOBAL FPP SETTINGS - END */<br>/* FORMs' configurations. [form_name] - Declares form name and its settings below. */<br>[some_form]<br>page = http://yourdomain.com/preview.html<br>page = http://yourdomain.com/thank-you.html<br>required_fields = fieldname (Field Name), field2 (Second Field Name)<br>email_fields = email (Email Address)<br>captcha_field = r_captcha (Value from CAPTCHA)<br>…</div></div>
<p>That's all! We have finished upgrading your existing form from FPP v4 to FPP v5!</p>]]></description>
                                    <pubDate>Wed, 10 Jun 2009 11:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00146</guid>
                    </item>
                <item>
                        <title>Setting-up My First Form</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00144</link>
                                    <description><![CDATA[<h1>Setting-up My First Form</h1><ol><li><a target="" href="#introduction">Introduction</a></li><li><a target="" href="#1st%20Step">Creating the contact form with an HTML editor</a></li><li><a target="" href="#2nd%20Step">Configuring the form</a></li><li><a target="" href="#3rd%20Step">Configuring the Thank You page</a></li><li><a target="" href="#4th%20Step">Creating Email templates</a></li><li><a target="" href="#5th%20Step">Configuring config.php - Summarizing the configuration</a></li></ol><h2><a  name="introduction"></a>Introduction<br></h2><p>Here, we'll guide you through the process of creating and configuring your first form with Form Processor Pro. After learning this sample&nbsp; process you'll be able to configure any form in just 5 minutes or less! To begin with, we'll create a simple contact form with the following in mind:</p><ul><li>We will use the form fields: Name, Phone, Email, Subject and Comment</li><li>We will validate Email field for properly formatted email addresses</li><li>The Name, Email and Subject fields are required</li><li>We want to send form results to our email address</li><li>We want to send an auto-responder confirmation email to the person submitting the form</li><li>We will provide the user with error messages on the same page and highlight empty or an improperly formatted email field</li><li>We would like to have a custom thank you page with a personalized greeting</li></ul><br><p>Hmm, that's pretty much of the requirements for a simple form! However, you can create significantly complicated and sophisticated forms with Form Processor Pro, too. In this case, we just want to have a contact form to be processed the right way and accept only correctly formatted submissions, avoiding user typos and mistakes.</p><p>To create any form with Form Processor Pro you only need to do four easy things:</p><ol><li>Point your form to FPP and give your form a name. You should point the ACTION attribute of your form to the fpp directory and give your form a unique name by inserting a HIDDEN field in the form's HTML just after the FORM tag.</li><li>Handle error messages. Put the &lt;!-- FPP_ERROR --&gt; tag in your form's page where you'd like to display error messages. <br></li><li>Create the required Email, HTML, and/or Log templates. Use {# and #} brackets and hash signs to include any variable (field content) in the template. If you have text field with name=email then you can use this variable in any template by putting it in brackets like this: {#email#}. This will be changed with user's entered value after processing.&nbsp;&nbsp; Be sure to use both the brackets ({}) and the pound signs (#).</li><li>Edit the config file with required configurations. Set the actions to perform, the validation rules etc. All available actions, validations and modifiers can be found in this manual. Remember you use the same configuration file for all forms.</li></ol><br><p>In order to continue with the following&nbsp; steps you need to have Form Processor Pro installed on your web server and the initial configuration should be complete. Please refer to the Installation section of this manual.</p><p>In this example, we have a domain: mydomain.com and Form Processor Pro installed in the “fpp” public folder under the www root. In other words Form Processor Pro can be accessed through: http://www.mydomain.com/fpp/index.php</p><h2><a  name="1st Step"></a>Creating the contact form with an HTML editor</h2><p>We've used Dreamweaver to create the form and we've got the following form and auto-generated HTML code:</p><p><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/_img82.gif" align="" border="0" height="325" hspace="0" vspace="0" width="308"></p><div class="source"><div class="sourceHeader" align="center">HTML Code of the Form Page:</div><div class="sourceContent">&lt;html&gt;<br>&lt;head&gt;<br>&lt;title&gt;My Contact Form&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;h3&gt;My Contact Form&lt;/h3&gt;<br>&lt;p&gt;* - required fields&lt;/p&gt;<br>&lt;form name="form1" method="post" action=""&gt;<br>&lt;table width="300" border="0"&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;div align="right"&gt;* Full Name:&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="text" name="name"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;div align="right"&gt;* Email:&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="text" name="email"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;div align="right"&gt;Phone:&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="text" name="phone"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;div align="right"&gt;* Subject&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="text" name="subject"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td valign="top"&gt;&lt;div align="right"&gt;Comment:&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;textarea name="comment" rows="5"&gt;&lt;/textarea&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td valign="top"&gt;&nbsp;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="submit" name="Submit" value="Submit"&gt;<br>&lt;input type="reset" name="Reset" value="Reset"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;/table&gt;<br>&lt;/form&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</div></div><h2><a  name="2nd Step"></a>Configuring the form</h2><p>We will put the &lt;!-- FPP_ERROR --&gt; tag in the form's HTML in the place where we'd like to display error messages. (See the changed code below.) Now we need to point the form to be processed with Form Processor Pro. <br></p><p>We do this by editing the FORM tag's ACTION attribute to refer to the URL where Form Processor Pro resides. You can use either relative or absolute paths. We need to set the METHOD attribute as POST as well. And finally, set ENCTYPE as MULTIPART/FORM-DATA. <br></p><p>Form tag before:&nbsp;</p><div class="preformatted"><div class="preformattedContent">&lt;form name="form1" method="post" action=""&gt;</div></div><p>Form tag after required corrections:&nbsp;</p><div class="preformatted"><div class="preformattedContent">&lt;form name="form1" method="post" action="http://www.mydomain.com/fpp/index.php" enctype="multipart/form-data"&gt;</div></div><p>If you use a relative path in the action parameter and do not use a "Base href" tag, every page after first page must have the action="index.php" parameter:</p><div class="preformatted"><div class="preformattedContent">&lt;form name="form1" method="post" action="index.php"&gt;</div></div><p>That's all for the FORM tag. Now we need to give the form a unique name. Let's name it “contact_form”. We can do this by inserting a HIDDEN field just after the FORM tag with the name “fpp_form” and value “contact_form”. This name is not the same "name" as the name= value in the FORM tag.&nbsp; FPP uses the hidden field to relate to the form.</p><p>Like this: </p><div class="preformatted"><div class="preformattedContent">&lt;input name="fpp_form" type="hidden" value="contact_form"&gt;</div></div><div class="info"><div class="infoHeader">Note:</div><div class="infoContent">For form names you can use only letters, numbers, underscore and dash characters.</div></div><div class="source"><div class="sourceHeader" align="center">Corrected HTML Code with highlighted changes:</div><div class="sourceContent">&lt;html&gt;<br>&lt;head&gt;<br>&lt;title&gt;My Contact Form&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;h3&gt;My Contact Form&lt;/h3&gt;<br><span style="background-color: rgb(255, 255, 0);">&lt;p&gt;&lt;!-- FPP_ERROR --&gt;&lt;/p&gt;</span><br>&lt;p&gt;* - required fields&lt;/p&gt;<br>&lt;form name="form1" method="post" action="<span style="background-color: rgb(255, 255, 0);">http://www.mydomain.com/fpp/index.php" enctype="multipart/form-data</span>"&gt;<br><span style="background-color: rgb(255, 255, 0);">&lt;input name="fpp_form" type="hidden" value="contact_form"&gt;</span><br>&lt;table width="300" border="0"&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;div align="right"&gt;* Full Name:&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="text" name="name"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;div align="right"&gt;* Email:&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="text" name="email"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;div align="right"&gt;Phone:&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="text" name="phone"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td&gt;&lt;div align="right"&gt;* Subject&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="text" name="subject"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td valign="top"&gt;&lt;div align="right"&gt;Comment:&lt;/div&gt;&lt;/td&gt;<br>&lt;td&gt;&lt;textarea name="comment" rows="5"&gt;&lt;/textarea&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;tr&gt;<br>&lt;td valign="top"&gt;&nbsp;&lt;/td&gt;<br>&lt;td&gt;&lt;input type="submit" name="Submit" value="Submit"&gt;<br>&lt;input type="reset" name="Reset" value="Reset"&gt;&lt;/td&gt;<br>&lt;/tr&gt;<br>&lt;/table&gt;<br>&lt;/form&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</div></div><div class="info"><div class="infoHeader">Note:</div><div class="infoContent">Please specify absolute paths for all links, images, the path of the action parameter, etc. in your form pages. Otherwise, all relative paths will be relative to the Form Processor Pro location, but NOT to your web page location. Or you may use the HTML tag &lt;BASE&gt; to specify the base URL:<br>&lt;BASE HREF="URL_TO_PAGE"&gt;</div></div><p>If you have more than one form page, repeat this step for each times. It's not necessary to add hidden field to pages other than first.</p><p>Save the form as: contact.html</p><h2><a  name="3rd Step"></a>Configuring the Thank You page</h2><p>Since we want a&nbsp; custom Thank You page we need to create it before dealing with the email template and the config file.</p><p>So, on the Thank You page we want to put something like this:</p><div class="preformatted"><div class="preformattedContent">Dear (here we would like to put user's name),<br>Thank you for your interest in our company. We will reply as soon as possible!<br>An email has been sent to (here we would like to put user's email).<br></div></div><div class="source"><div class="sourceHeader" align="center">Initial HTML code for the Preview Page:</div><div class="sourceContent">&lt;html&gt;<br>&lt;head&gt;<br>&lt;title&gt;My Contact Form - Thank you!&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;p&gt;Dear (here we would like to put user's name),&lt;/p&gt;<br>&lt;p&gt;Thank you for your interest in our company. We will reply as soon as possible!&lt;/p&gt;<br>&lt;p&gt;An email has been sent to (here we would like to put user's email).&lt;/p&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</div></div><p>In order to insert any variables dynamically, we need to use the {# and #} brackets. Inside these brackets, we need to put the appropriate variable name. The variable name is of the corresponding field in our form. In our case, we should use {#name#} and {#email#} accordingly. So, we will have the following changes in our HTML code for the Thank You Page:</p><div class="source"><div class="sourceHeader" align="center">HTML code for the Thank You page with highlighted changes:</div><div class="sourceContent">&lt;html&gt;<br>&lt;head&gt;<br>&lt;title&gt;My Contact Form - Thank you!&lt;/title&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>&lt;p&gt;Dear <span style="background-color: rgb(255, 255, 0);">{#name#}</span>,&lt;/p&gt;<br>&lt;p&gt;Thank you for your interest in our company. We will reply as soon as possible!&lt;/p&gt;<br>&lt;p&gt;An email has been sent to <span style="background-color: rgb(255, 255, 0);">{#email#}</span>.&lt;/p&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;<br><br>Save the Thank You page as: thank-you.html</div></div><h2><a  name="4th Step"></a>Creating Email templates</h2><p>Email templates are simply text files with specially formatted content. Generally, email has the following required fields (rows in template): To, From, Subject and Message Body. However, other fields like BCC, Attachments etc. are also possible. Please refer to the <a target="" href="ARTICLE_URL#112##AA-00151#">Email Sending Action</a> article for more information. An email template should look like this:</p><p>Email template:</p><div class="preformatted"><div class="preformattedContent">To: recepient@somehost.com<br>From: sender@somehost.com<br>Subject: This is an email subject<br><br>Message Body Text in free form (Either plain text or HTML formatted text)</div></div><p>In order to use variables (fields) we need to put them in curly brackets with pound signs (#), just like in the previous step. We want all form fields to be included in our email. So, the email template to be sent to us should look like this:</p><div class="preformatted"><div class="preformattedContent">To: info@mydomain.com<br>From: {#email#}<br>Subject: Contact Form Filled<br><br>Information from the Contact form:<br>Full Name: {#name#}<br>Email: {#email#}<br>Phone: {#phone#}<br><br>Subject: {#subject#}<br>Comments:<br>{#comment#}<p></p></div></div><p>Save the Email template “to us” as: email.txt</p><p>We create the email template for the auto generated email to the form's submitter the same way:</p><div class="preformatted"><div class="preformattedContent">To: {#email#}<br>From: info@mydomain.com<br>Subject: Thank you for contacting Mydomain.com<br><br>Dear {#name#},<br>You have submitted the following information to mydomain.com<br>---<br>Name: {#name#}<br>Email: {#email#}<br>Phone: {#phone#}<br>Subject: {#subject#}<br>Comments:<br>{#comment#}<br>---<br>Thank you for contacting us. We will respond as soon as possible!<br>Sincerely, <br>Mydomain.com Team</div></div><p>Save the Email template “to client” as: autoresponder.txt</p><h2><a  name="5th Step"></a>Configuring config.php - Summarizing the configuration</h2><p>We have configured our form, thank you page and prepared the required email templates. Now in order to make the final configurations we have to teach FPP how we would like our form to be processed. To do so, we have to edit config.php located in the Form Processor Pro installation.</p><h3>File placement on the web server</h3><p>We modify/create config.php, we should place our created files to the web server, as we will use paths to these files in our config.php file. So, we place contact.html and thank-you.html in the web server's www public folder. Both email template files (email.txt and autoresponder.txt) we place in separate folder under www. <br></p><ul><li>www - public folder of mydomain.com</li><ul><li>fpp - folder with the installation of Form Processor Pro</li><ul><li>attachments</li><li>classes</li><li>install</li><li>lang</li><li>plugins</li><li>tmp</li><li>.htaccess</li><li>captcha.img.php</li><li>config.php (configuration file)</li><li>fpp-test.php</li><li>index.php</li><li>style.css</li></ul><li>..</li><li>contact - folder with email templates</li><ul><li>.htaccess - to protect this folder from outside browsing, see tip-suggestion below</li><li>email.txt</li><li>autoresponder.txt</li></ul><li>contact.html&nbsp; (our contact form)</li><li>thank-you.html (our thank you page)</li><li>.. - and other web site pages</li></ul></ul><p>In our case:</p><p>FPP can be accessed through: http://www.mydomain.com/fpp/index.php</p><p>Contact form can be accessed through: http://www.mydomain.com/contact.html</p><p>Tip: In order to protect your email template files from undesirable browsing through HTTP, we suggest you to place them in a separate folder and protect this folder from browsing. You can use an .htaccess file for this purpose on any Unix/Linux compatible host. Just add/create this file (.htaccess) in the folder with email templates with the following content (you can also copy the .htaccess file from “tmp” or “attachments” folder in the fpp folder):</p><div class="preformatted"><div class="preformattedContent">&lt;Files *&gt;<br>Order allow, deny<br>Deny from all<br>&lt;/Files&gt;</div></div><p>You will protect yourself from email harvesting bots by doing this.</p><p>On Windows based hosts, you can do this by setting the corresponding permissions for this folder.</p><h3>Adding a new form to the config.php file</h3><p>Now we have all the required files in place and we can edit our config.php file</p><div class="info"><div class="infoHeader">Note:</div><div class="infoContent">Please, use a plain text editor to edit config.php to prevent adding unnecessary lines and symbols.</div></div><div class="source"><div class="sourceHeader" align="center">Sample content for config.php </div><div class="sourceContent">&lt;?php header('Location: index.php'); ?&gt;<br>/* GLOBAL FPP SETTINGS - BEGIN. THESE SETTINGS ARE APPLIED TO ALL FORMS! */<br>mysql_host = localhost<br>mysql_user = user_name<br>mysql_password = password<br>mysql_db = fpp5<br>smtp_server = localhost<br>smtp_port = 25<br>date_format = H:m d/m/y<br>/* GLOBAL FPP SETTINGS - END */<br>/* FORM configurations. [form_name] - Declares form name and its settings below. */<br>[some_form]<br>page = ../form.html<br>page = ../thank-you.html<br>required_fields = name (Full Name), email (Contact Email), subject (Subject)<br>email_fields = email (Contact Email)<br>autogen_email = info@mydomain.com<br>…</div></div><p>First, we have to declare a new form in our configuration file. We do this by adding a form name in [ ] brackets as a new line at the end of config.php file or just after global settings section. The form's name is the value used for previously added hidden files. In our case it's “contact_form”.</p><p>In our case we have:</p><div class="preformatted"><div class="preformattedContent">[contact_form]</div></div><p>After the form's declaration (form name in brackets) we can put any form settings we like.</p><p>Ok, now we have to declare all the pages that will be used during Form Processor Pro processing in a particular process order. We use the “page” setting for this purpose and set full or relative paths to these pages (relative to the fpp). If we would like to show a Thank You page just after the successful submission of our one-page contact form, we have to put it as second one.</p><p>Just like this:</p><div class="preformatted"><div class="preformattedContent">page = ../contact.html<br>page = ../thank-you.html</div></div><div class="info"><div class="infoHeader">Note:</div><div class="infoContent">You have full control over any server-side script execution on form pages. If you use the relative or absolute path to the file (e.g.: "../form/file.html" or "/fpp/form/filename.php") Form Processor Pro will open it as a text file. No scripts (e.g.: PHP, ASP) will be executed on the page. If you use the full URL (e.g.: "http://www.yoursite.com/path/file.html") Form Processor Pro will let the webserver execute all server-side scripts on the page, and then will parse the form. The PHP option "allow_url_fopen" must be enabled for this behaviour.</div></div><h3>Setting up validations</h3><p>In order to set Full Name, Email and Subject fields as required, we need to use the “required_fields” validation rule and put all required field names here. Thus:</p><p>required_fields = name (Full Name), email (Contact Email), subject (Subject)</p><p>Please note that phrases in the ( and ) brackets (parentheses) are just used in error messages,not as internal field names in HTML. Thus your error messages can be intuitive, user-friendly, and you can even use language other than English! As we have already mentioned you can put validation rules as one field per line or write all of them&nbsp; in one string and separate field names with commas.</p><p>Thus:</p><div class="preformatted"><div class="preformattedContent">required_fields = name (Full Name), email (Contact Email), subject (Subject)</div></div><p>or</p><div class="preformatted"><div class="preformattedContent">required_fields = name (Full Name)<br>required_fields = email (Contact Email)<br>required_fields = subject (Subject)</div></div><p>will have the same effect - required form fields: name, email and subject. <br></p><p>In order to require only properly formatted emails in the email field, we will use the “email_fields” validation rule, the same way as above:</p><div class="preformatted"><div class="preformattedContent">email_fields = email (Contact Email)</div></div><p>As you can see you can have more than one validation per field, - any amount, actually, within reason, of course.</p><p>For more information on possible validation rules refer to the Field Validations chapter.</p><h3>Setting up email sending</h3><p>We would like to send two emails: one to us with form results and another as an auto responder to the person who submitted the form. We have already created these templates and we use them here with “email” action.</p><p>Like this:</p><div class="preformatted"><div class="preformattedContent">email = ../contact/email.txt<br>email = ../contact/autoresponder.txt</div></div><p>For more information on possible actions refer to the Actions chapter.</p><p>That's all the configurations needed for the config.php file according to our initial requirements for this Contact Form.</p><div class="source"><div class="sourceHeader" align="center">After adding all of the above to our config.php file, we have the following changes to it:</div><div class="sourceContent">&lt;?php header('Location: index.php'); ?&gt;<br>/* GLOBAL FPP SETTINGS - BEGIN. THESE SETTINGS APPLY TO ALL FORMS! */<br>mysql_host = localhost<br>mysql_user = user_name<br>mysql_password = password<br>mysql_db = fpp5<br>smtp_server = localhost<br>smtp_port = 25;<br>date_format = H:m d/m/y<br>/* GLOBAL FPP SETTINGS - END */<br>/* FORM configurations. [form_name] - Declares form name and its settings below. */<br>[contact_form]<br>page = ../contact.html<br>page = ../thank-you.html<br>required_fields = name (Full Name), email (Contact Email), subject (Subject)<br>email_fields = email&nbsp; (Contact Email)<br>email = ../contact/email.txt<br>email = ../contact/autoresponder.txt<br><br>…</div></div><p>That's all! We have finished configuring our first form!</p>]]></description>
                                    <pubDate>Wed, 10 Jun 2009 11:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00144</guid>
                    </item>
                <item>
                        <title>How to get started?</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00113</link>
                                    <description><![CDATA[<p>In order to start using Form Processor Pro you should follow these steps:</p><ol><li>Read <a target="" href="ARTICLE_URL#161##AA-00200#">Package Contents</a> for a better understanding of further chapters in this manual.</li><li>Install the package according to <a target="" href="ARTICLE_URL#75##AA-00114#">Installation</a> instructions.</li><li>Prepare your installation using configuration script and <a target="" href="ARTICLE_URL#76##AA-00115#">Initial configuration</a> instructions.</li><li>Follow the steps in “<a target="" href="ARTICLE_URL#105##AA-00144#">Setting-up My First Form</a>” chapter and configure your first form in order to understand the process of form configuration.</li><li>After succeeding these steps you'll be able to <a target="" href="ARTICLE_URL#106##AA-00145#">configure any form with FPP v5</a> just in 5 minutes or even less!</li></ol>]]></description>
                                    <pubDate>Mon, 08 Jun 2009 14:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00113</guid>
                    </item>
                <item>
                        <title>Field Validations</title>
                                    <link>https://www.web-site-scripts.com/knowledge-base/article/AA-00166</link>
                                    <description><![CDATA[<h1>Field Validations<br></h1>
<ol><li><a target="" href="#Overview">Overview</a></li><li><a target="" href="#Field%20Validations%20Reference">Field Validations Reference</a></li><ol><li><a target="" href="#allowed_values">allowed_values</a></li><li><a target="" href="#australian_phone_fields">australian_phone_fields</a></li><li><a target="" href="#belgium_postcode_fields">belgium_postcode_fields</a></li><li><a target="" href="#canadian_provincial_fields">canadian_provincial_fields</a></li><li><a target="" href="#canadian_zip_fields">canadian_zip_fields</a></li><li><a target="" href="#char_limit">char_limit</a></li><li><a target="" href="#char_min_limit">char_min_limit</a></li><li><a target="" href="#conditional_required_fields">conditional_required_fields</a></li><li><a target="" href="#credit_card_fields">credit_card_fields</a></li><li><a target="" href="#date_fields">date_fields</a></li><li><a target="" href="#date_fields_delay">date_fields_delay</a></li><li><a href="#disallowed_characters" target="">disallowed_characters</a></li><li><a target="" href="#domain_fields">domain_fields</a></li><li><a target="" href="#dutch_postcode_fields">dutch_postcode_fields</a></li><li><a target="" href="#email_fields">email_fields</a></li><li><a href="#euro_serial_number" target="">euro_serial_number</a></li><li><a target="" href="#field_captions">field_captions</a></li><li><a target="" href="#field_list_exclude">field_list_exclude</a></li><li><a target="" href="#file_filter_fields">file_filter_fields</a></li><li><a target="" href="#float_fields">float_fields</a></li><li><a target="" href="#four_digit_year_fields">four_digit_year_fields</a></li><li><a target="" href="#france_postcode_fields">france_postcode_fields</a></li><li><a target="" href="#french_phone_fields">french_phone_fields</a></li><li><a target="" href="#german_postcode_fields">german_postcode_fields</a></li><li><a target="" href="#icd9_code_fields">icd9_code_fields</a></li><li><a target="" href="#image_file_fields">image_file_fields</a></li><li><a target="" href="#int_fields">int_fields</a></li><li><a target="" href="#ip_fields">ip_fields</a></li><li><a target="" href="#ipv6_fields">ipv6_fields</a></li><li><a target="" href="#is_fields_set">is_fields_set</a></li><li><a target="" href="#isbn_fields">isbn_fields</a></li><li><a target="" href="#italian_codice_fiscale_fields">italian_codice_fiscale_fields</a></li><li><a target="" href="#italian_postcode_fields">italian_postcode_fields</a></li><li><a target="" href="#mac_address_fields">mac_address_fields</a></li><li><a target="" href="#month_fields">month_fields</a></li><li><a target="" href="#monthday_fields">monthday_fields</a></li><li><a target="" href="#msoffice_file_fields">msoffice_file_fields</a></li><li><a target="" href="#netherlands_postcode_fields">netherlands_postcode_fields</a></li><li><a target="" href="#percentage_fields">percentage_fields</a></li><li><a target="" href="#required_fields">required_fields</a></li><li><a target="" href="#required_empty_fields">required_empty_fields</a></li><li><a target="" href="#roman_num_fields">roman_num_fields</a></li><li><a target="" href="#same_fields">same_fields</a></li><li><a target="" href="#set_value">set_value</a></li><li><a target="" href="#spanish_postcode_fields">spanish_postcode_fields</a></li><li><a target="" href="#ssn_fields">ssn_fields</a></li><li><a target="" href="#swedish_phone_fields">swedish_phone_fields</a></li><li><a target="" href="#swedish_zip_fields">swedish_zip_fields</a></li><li><a target="" href="#time_fields">time_fields</a></li><li><a target="" href="#uk_bsc_fields">uk_bsc_fields</a></li><li><a target="" href="#uk_driver_license_fields">uk_driver_license_fields</a></li><li><a target="" href="#uk_nin_fields">uk_nin_fields</a></li><li><a target="" href="#uk_postcode_fields">uk_postcode_fields</a></li><li><a target="" href="#url_fields">url_fields</a></li><li><a target="" href="#us_phone_fields">us_phone_fields</a></li><li><a target="" href="#us_state_fields">us_state_fields</a></li><li><a target="" href="#vat_num_fields">vat_num_fields</a></li><li><a target="" href="#vin_fields">vin_fields</a></li><li><a target="" href="#weekday_fields">weekday_fields</a></li><li><a target="" href="#word_fields">word_fields</a></li><li><a target="" href="#word_limit">word_limit</a></li><li><a target="" href="#year_fields">year_fields</a></li><li><a target="" href="#zip_fields">zip_fields</a></li><li><a target="" href="#zip_files_fields">zip_files_fields</a></li></ol><li><a target="" href="#File%20extensions%20allowed%20for%20upload">File extensions allowed for upload</a></li></ol>
<h2><a name="Overview" ></a>Overview</h2>
<p>Form Processor Pro allows you to control, check, and verify user input data by using a number of bundled validating functions. It means you may set restrictions or requirements for any field on your form. For example, if you have some text field, named “your_email” and you want to be sure that all users provide you correct email address and nothing else; you should add the following line to your form configuration:</p>
<div class="preformatted"><div class="preformattedContent">
[my_form]<br>…<br>email_fields = your_email (Your Email)<br>…
</div></div>
<p>By doing this, you are forcing form users to provide you with a correct email address in the field named “your_email”</p>
<p>Detailed syntax of the major form validator configurations:</p>
<div class="preformatted"><div class="preformattedContent">
validator_name = field_name1 (field title 1), field_name2 (field title 2), …
</div></div>
<p>Where:</p>
<p>validator_name - is the name of the Form Processor Pro validator.</p>
<p>field_name1, field_name2 - are the names of the fields on your form. Names must be the the exact name of the HTML element.</p>
<p>Also, you may use special “field titles” for your fields, written in round brackets. They will be shown in error message, if the field contains any errors or mispellings, otherwise the field_name will be shown&nbsp; if there is no field title specified.</p>
<p>Examples:</p>
<div class="preformatted"><div class="preformattedContent">
email_fields = email (Email address)<br>zip_fields = zip<br>required_fields = name (First name), zip, email (Email address)</div></div>
<p>In example #1 we require form users to input a correct email address in field “email”. If it is not a valid email address the error message will be generating, like:</p>
<p>Field "Email address" is not correct email address</p>
<p>Example #2: we are checking the zip code on field “zip”. As you can see it is not necessary to use field titles.If the zip code is not valid,&nbsp; the following message will be shown:</p>
<p>Field "zip" is not a correct zip code</p>
<p>Moreover, you can apply more than one field in a validation set. In example 3 above,&nbsp; we set the fields name, zip, and email as required all in one validation line.</p>
<h2><a name="Field Validations Reference" ></a>Field Validations Reference</h2>
<h3><a name="allowed_values" ></a>allowed_values</h3>
<p>Validates numbers validator (not less, not bigger or equal)</p>
<p>Syntax:</p>
<div class="preformatted"><div class="preformattedContent">
allowed_values = fieldname (caption) = 1-15, 17, 19-30, word 1, word 2[;fieldname (caption) = 1-15, 17, 19-30]
</div></div>
<p>Example:</p>
<div class="preformatted"><div class="preformattedContent">
allowed_values = fieldname (caption) = 1-15, 17, 19-30, hello, hiya
</div></div>
<p>Result:</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID </td>
<td>
3, 17, hello</td>
</tr>
<tr>
<td>
INVALID </td>
<td>
445, temp, 18 </td>
</tr>
</tbody>
</table>
<h3><a name="australian_phone_fields" ></a>australian_phone_fields</h3>
<p>Verifies Australian phone numbers. Matches all known formats including normal 10-digit landline numbers (valid area code mandatory) 13, 1300, 1800, 1900, 1902 plus mobile 10 and 11-digit formats. <br></p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
0732105432, 1300333444, 131313
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
32105432, 13000456
</td>
</tr>
</tbody>
</table>
<h3><a name="belgium_postcode_fields" ></a>belgium_postcode_fields</h3>
<p>Validates postcodes for Belgium</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
1234
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
123, 123A
</td>
</tr>
</tbody>
</table>
<h3><a name="canadian_provincial_fields" ></a>canadian_provincial_fields<br></h3>
<p>Validates provincial codes of Canada.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
ON, PE, NB
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
OB, NM
</td>
</tr>
</tbody>
</table>

<h3><a name="canadian_zip_fields" ></a>canadian_zip_fields<br></h3>
<p>Verifies that Canadian postal code format is correct.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
M1R 4B0, L0R 1B1, L0R1B9
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
W1R 4B0, L0R 1D1, LOR1B9
</td>
</tr>
</tbody>
</table>

<h3><a name="char_limit" ></a>char_limit<br></h3>
<p>Validates characters limit.</p>
<p>Syntax:</p>
<div class="preformatted"><div class="preformattedContent">
char_limit = field_name (caption), char_count [; field_name (caption), char_count ...]
</div></div>
<p>Example:</p>
<div class="preformatted"><div class="preformattedContent">
char_limit = somefield (caption), 6
</div></div>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
Hello, Dog
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
Greetings
</td>
</tr>
</tbody>
</table>

<h3><a name="char_min_limit" ></a>char_min_limit</h3>
<p>Validates minimum characters limit.</p>
<p>Syntax:</p>
<div class="preformatted"><div class="preformattedContent">
char_min_limit = field_name (caption), char_count <span class="error">[;
 field_name (caption), char_count ...]</span></div></div>
<p>Example:</p>
<div class="preformatted"><div class="preformattedContent">
char_min_limit = subject (Subject), 5</div></div>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
Hello, Something
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
test, 123<br></td>
</tr>
</tbody>
</table>

<h3><a name="conditional_required_fields" ></a>conditional_required_fields<br></h3>
<p>Checks if fields have been filled after checking user set condition.</p>
<p>Syntax:</p>
<div class="preformatted"><div class="preformattedContent">
conditional_required_fields = field_name (Field Caption), condition_to_make_this_field_required, error_msg
</div></div>
<p>condition_to_make_this_field_required can contains any expression using logical operators: = (for "equals"), != (for "not equals"), || (for "OR"), &amp;&amp; (for "AND"). If you do not check the value of some field, Form Processor Pro will check if this field filled. Special parameters: contains and does_not_contain, which check if word or phrase is contained or not in some variable.</p>
<p>Example:</p>
<div class="preformatted"><div class="preformattedContent">
conditional_required_fields = last_name, "{#first_name#}" != "John"<br>conditional_required_fields = last_name, "{#first_name#}" &amp;&amp; "{#email#}"<br>conditional_required_fields = last_name, '{#first_name#}' == 'John' &amp;&amp; ('{#email#}' contains 'gmail.com')
</div></div>
<p>First line: if first_name is not empty, last_name will be required to be filled</p>
<p>Second line: if first_name and email are not empty, last_name will be required to be filled</p>
<p>Third line: if firs_tname has the value 'firstname' and email contains gmail.com, last_name will be required to be filled.</p>
<h3><a name="credit_card_fields" ></a>credit_card_fields<br></h3>
<p>Verifies major credit card numbers, including: Visa, MasterCard, Diners Club, Carte Blanche, Discover and American Express.</p>
<p>IMPORTANT: It does not do REAL credit card validation; it only checks that the data input could be a credit card number.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
4111-2222-3333-4444, 3411 222222 33333, 5111222233334444
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
4111-2222-3333-444, 3411-2222-3333-4444, Visa
</td>
</tr>
</tbody>
</table>

<h3><a name="date_fields" ></a>date_fields<br></h3>
<p>Validates date fields</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
10 September 2000, 12-12-2006, 31 Dec 9999, 29 Feb 2004
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
MMVIII, 29 Feb 2002, 13 Octo 1998, 32 May 1913
</td>
</tr>
</tbody>
</table>

<h3><a name="date_fields_delay" ></a>date_fields_delay<br></h3>
<p>Checks if date filled to the field isn't sooner of user set delay.</p>
<p>Syntax:</p>
<div class="preformatted"><div class="preformattedContent">
date_fields_delay = field_name, delay_days, error message
</div></div>
<p>Example:</p>
<p>For example you need user only input into the date field date that is week further from today.</p>
<div class="preformatted"><div class="preformattedContent">
date_fields_delay = lastname, 7, Date should be later that today + 7 days
</div></div>
<p>Result:</p>
<p>User won't be able to input date that is sooner than week from the day user submits the form.</p>
<p></p>
<h3><a name="disallowed_characters" ></a>disallowed_characters</h3>
<p>Checks the field input and ensures that it doesn't have any of the listed disallowed characters.</p>
<p>Syntax:</p>
<p></p>
<div class="preformatted">
<div class="preformattedContent">
disallowed_characters = field_name (caption), "list of disallowed characters"</div>
</div>
<p>Example:</p>
<p></p>
<div class="preformatted">
<div class="preformattedContent">
disallowed_characters = field_name (caption), "_-[]()"?"</div></div>
<p></p>
<p></p>
<p></p>
<h3><a name="domain_fields" ></a>domain_fields<br></h3>
<p>Validates domain names.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
email-form.com, example.co.uk
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
http://email-form.com, test@mitridat.com
</td>
</tr>
</tbody>
</table>

<h3><a name="dutch_postcode_fields" ></a>dutch_postcode_fields<br></h3>
<p>Dutch zip code verification</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
1054 WD, 1054WD, 1054 wd
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
10543
</td>
</tr>
</tbody>
</table>

<h3><a name="email_fields" ></a>email_fields<br></h3>
<p>Validates an RFC 2822 email addresses</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
user@domain.com, user.id@domain-name.com
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
userdomain.com, user@300.0.0.1, .user@-domain-.com
</td>
</tr>
</tbody>
</table><h3><a  name="euro_serial_number"></a>euro_serial_number</h3><p><p>Validates euro banknote serial numbers.</p><p>Syntax:</p><p><div class="preformatted">
<div class="preformattedContent">
euro_serial_number = field_name (caption)</div>
</div>
</p></p><h3><a name="field_captions" ></a>field_captions<br></h3>
<p>This is not actually validator, but it used to set names of the fields that are not validated (for example for using them in generated files)</p>
<p>Syntax:</p>
<div class="preformatted"><div class="preformattedContent">
field_captions = field1 (Field 1 caption)[, field2 (Field 2 caption)]
</div></div>
<p>Example:</p>
<div class="preformatted"><div class="preformattedContent">
field_captions = altemail (Alternative Email Address)
</div></div>
<h3><a name="field_list_exclude" ></a>field_list_exclude<br></h3>
<p>This option purges field from fields list, for example if you don't want some field to be shown while using Predefined Variable: {#%FIELDS_LIST_HTML#}, or if you don't want to show this field in the generated files.</p>
<h3><a name="file_filter_fields" ></a>file_filter_fields<br></h3>
<p>File type validation. Allow a user to enter only files with allowed extensions.</p>
<p>See "<a target="" href="ARTICLE_URL#127##AA-00166##File%20extensions%20allowed%20for%20upload">File extensions allowed for upload</a>" for examples.</p>
<h3><a name="float_fields" ></a>float_fields<br></h3>
<p>Validates decimal numbers</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
12, 0.25, 36.678
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
A10, $25.10
</td>
</tr>
</tbody>
</table>

<h3><a name="four_digit_year_fields" ></a>four_digit_year_fields<br></h3>
<p>Validates the number of the year. Only used on four digit format.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
2007, 1996
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
132, 24566
</td>
</tr>
</tbody>
</table>

<h3><a name="france_postcode_fields" ></a>france_postcode_fields<br></h3>
<p>Validates postcodes for France (including colonies)</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
12345, F-12345, F-2B100
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
S123456, F-123456, 123456
</td>
</tr>
</tbody>
</table>

<h3><a name="french_phone_fields" ></a>french_phone_fields<br></h3>
<p>Validates phone numbers in France.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
01 46 70 89 12, 01-46-70-89-12, 0146708912
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
01-46708912, 01 46708912, +33235256677
</td>
</tr>
</tbody>
</table>

<h3><a name="german_postcode_fields" ></a>german_postcode_fields<br></h3>
<p>Validates German postal codes (PLZ or Postleitzahlen)</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
12556, 01550, 80796
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
05234, 8973, 62980
</td>
</tr>
</tbody>
</table>

<h3><a name="icd9_code_fields" ></a>icd9_code_fields<br></h3>
<p>ICD9 code validation.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
E123., 123.0, 045.23
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
b123., 3456.0
</td>
</tr>
</tbody>
</table>

<h3><a name="image_file_fields" ></a>image_file_fields<br></h3>
<p>Validates image file names.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
picture.jpg, picture.gif
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
picture.doc, picture.zip
</td>
</tr>
</tbody>
</table>

<h3><a name="int_fields" ></a>int_fields<br></h3>
<p>Validates integer numbers. <br></p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
0, 5, 71
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
12.23, ABC
</td>
</tr>
</tbody>
</table>

<h3><a name="ip_fields" ></a>ip_fields<br></h3>
<p>Validates the format of IP Addresses. <br></p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
127.0.0.1, 255.255.255.0, 192.168.0.1
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
1200.5.4.3, abc.def.ghi.jkl, 255.foo.bar.1
</td>
</tr>
</tbody>
</table>

<h3><a name="ipv6_fields" ></a>ipv6_fields<br></h3>
<p>Validates full and compressed IPv6 addresses as defined in RFC 2373.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210, 1080::8:800:200C:417A, ::FFFF:129.144.52.38
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
FEDC::7654:3210::BA98:7654:3210, FEDC:BA98:7654:3210, ::
</td>
</tr>
</tbody>
</table>

<h3><a name="is_fields_set" ></a>is_fields_set<br></h3>
<p>Checks if fields was set (for example you pass with GET method to the form)</p>
<p>syntax:</p>
<div class="preformatted"><div class="preformattedContent">
is_field_set = fieldname, pagenumber, error message[; fieldname2, page, error message2]
</div></div>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
http://yourdomain.com/fpp/index.php?fieldname=25
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
http://yourdomain.com/fpp/index.php
</td>
</tr>
</tbody>
</table>

<h3><a name="isbn_fields" ></a>isbn_fields<br></h3>
<p>Validates ISBN number. <br></p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
0 93028 923 4, 1-56389-668-0, 1-56389-016-X
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
123456789X, 9-87654321-2, 123 456-789X
</td>
</tr>
</tbody>
</table>

<h3><a name="italian_codice_fiscale_fields" ></a>italian_codice_fiscale_fields<br></h3>
<p>Validates Italian fiscal code (codice fiscale).</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
SPGGRG73A02E625S<br>czzdll74h18f205w
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
SP6FFFF3A02E625S, czzdll74h18f205
</td>
</tr>
</tbody>
</table>

<h3><a name="italian_postcode_fields" ></a>italian_postcode_fields<br></h3>
<p>Checks postcodes for Italy (including possible Vatican/Italy indications)</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
1234, V-1234
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
12345
</td>
</tr>
</tbody>
</table>

<h3><a name="mac_address_fields" ></a>mac_address_fields<br></h3>
<p>Verifies a MAC address with hex values separated by a colon</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
00:00:39:F9:3C:59, 00:90:83:6A:B3:B7, 00:00:39:59:30:5C
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
00:0H:39:59:30:5C, 00:39:59:30:5C, 00:39:59:30:5C:BZ
</td>
</tr>
</tbody>
</table>

<h3><a name="month_fields" ></a>month_fields<br></h3>
<p>Month name (number) validation. <br></p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
2, 05, 11, Jul, August
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
0, 13, jne
</td>
</tr>
</tbody>
</table>

<h3><a name="monthday_fields" ></a>monthday_fields<br></h3>
<p>Checks if the field value is between 1 and 31.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
15, 30
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
32, -3
</td>
</tr>
</tbody>
</table>

<h3><a name="msoffice_file_fields" ></a>msoffice_file_fields</h3>
<p>Microsoft Office filename validation. <br></p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
document.doc, spearsheet.xls
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
document.dll, spearsheet.exe
</td>
</tr>
</tbody>
</table>

<h3><a name="netherlands_postcode_fields" ></a>netherlands_postcode_fields<br></h3>
<p>Validates postcodes for the Netherlands.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
1234AB, 1234 AB
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
123BBB, 023AB
</td>
</tr>
</tbody>
</table>

<h3><a name="percentage_fields" ></a>percentage_fields<br></h3>
<p>Validates percentage numbers.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
13%, 24.85%
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
13, 24.5, .12%
</td>
</tr>
</tbody>
</table>

<h3><a name="required_fields" ></a>required_fields<br></h3>
<p>Checks if fields have been filled.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
Sometext
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>

<br></td>
</tr>
</tbody>
</table>

<h3><a name="required_empty_fields" ></a>required_empty_fields<br></h3>
<p>Checks if fields have not been filled.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>

<br></td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
Sometext
</td>
</tr>
</tbody>
</table>

<h3><a name="roman_num_fields" ></a>roman_num_fields<br></h3>
<p>Roman numerals validation.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
XXL, MCMXCIX, III
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
ALPHA, I9E
</td>
</tr>
</tbody>
</table>

<h3><a name="same_fields" ></a>same_fields<br></h3>
<p>Checks to see if all listed fields have the same value.</p>
<p>Usage:</p>
<div class="preformatted"><div class="preformattedContent">
same_fields =&nbsp; field_name (field_caption) [, field_name2 (field_caption2), ...]<br></div></div>
<p>Example: <br></p>
<div class="preformatted"><div class="preformattedContent">
same_fields = email (Email), email2 (Repeat Email)<br></div></div>
<p>This example will validate fields email and email2 to have same values.<br></p>

<h3><a name="set_value" ></a>set_value<br></h3>
<p>Used to set a value to the variable. For example if you want to have some predefine variable.</p>
<p>Usage:</p>
<div class="preformatted"><div class="preformattedContent">
set_value = [field_name] = "[value]" [; [field_name] = "[value]" [;...]]
</div></div>
<p>Example:</p>
<div class="preformatted"><div class="preformattedContent">set_value = company = "MyCompany"; state = "Alabama"</div></div>
<p>Result:</p>
<p>{#company#} will show MyCompany, and {#state#} will show Alabama</p>
<h3><a name="spanish_postcode_fields" ></a>spanish_postcode_fields<br></h3>
<p>Validates Spanish postcodes</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
01234, 50000, 12345
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
00, 999
</td>
</tr>
</tbody>
</table>

<h3><a name="ssn_fields" ></a>ssn_fields<br></h3>
<p>U.S. social security numbers (SSN) validation</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
145470191, 145 47 0191, 145-47-0191
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
000470191, 145-00-0191, 145.47.0191
</td>
</tr>
</tbody>
</table>

<h3><a name="swedish_phone_fields" ></a>swedish_phone_fields<br></h3>
<p>Validates Swedish phone numbers according to SIS standard</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
+46 8 123 456 78, 08-123 456 78, 0123-456 78
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
+46 08-123 456 78, 08 123 456 78, 0123 456 78
</td>
</tr>
</tbody>
</table>

<h3><a name="swedish_zip_fields" ></a>swedish_zip_fields<br></h3>
<p>Validates Swedish zip codes (postnr) with or without space between groups. With leading s- or not</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
12345, 932 68, S-621 46
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
5367, 425611, 31 54
</td>
</tr>
</tbody>
</table>

<h3><a name="time_fields" ></a>time_fields<br></h3>
<p>Checks to see if values are correct timestamps.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
1:01 AM, 23:52:01, 11:04 pm, 03.24.36 aM
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
24:03, 13 pm
</td>
</tr>
</tbody>
</table>

<h3><a name="uk_bsc_fields" ></a>uk_bsc_fields<br></h3>
<p>Validates UK Bank Sort code</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
09-01-29, 05-06-25
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
090125
</td>
</tr>
</tbody>
</table>

<h3><a name="uk_driver_license_fields" ></a>uk_driver_license_fields<br></h3>
<p>Checks for UK Drivers License format</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
JOHNS711215GG9SY
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
JOHNS731215GG9SY
</td>
</tr>
</tbody>
</table>

<h3><a name="uk_nin_fields" ></a>uk_nin_fields<br></h3>
<p>UK National Insurance Number (NINo) validation</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
JG103759A, AP019283D, ZX047829C
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
DC135798A, FQ987654C, KL192845T
</td>
</tr>
</tbody>
</table>

<h3><a name="uk_postcode_fields" ></a>uk_postcode_fields<br></h3>
<p>UK postcode validation</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
W1A 1AA, EC2V 1JN, GIR 0AA
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
TB12 1AB, EC2V 1JM, W2A 1AA
</td>
</tr>
</tbody>
</table>

<h3><a name="url_fields" ></a>url_fields<br></h3>
<p>Checks to see if the value is a correct full URL address.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
http://www.email-form.com/online-manual/index.html, mailto:support@web-site-scripts.com, ftp://ftp.mysite.com
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
www.google.com, microhard.com
</td>
</tr>
</tbody>
</table>

<h3><a name="us_phone_fields" ></a>us_phone_fields<br></h3>
<p>Checks for US phone numbers with optional leading 1, an optional area code, and optional delimiters (hyphen, space, or period)</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
18005551212, 1.800.555.1212, 1-800-555-1212, (800)555-1212, 8005551212, 800-555-1212, 800.555.1212, 5551212, 555-1212, 555.1212
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
2-800-555-1212, 55-5212, 551212, 15551212
</td>
</tr>
</tbody>
</table>

<h3><a name="us_state_fields" ></a>us_state_fields<br></h3>
<p>Chekcs US state two character abbreviations</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
CO, GA, TX
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
A, ZZ, Florida
</td>
</tr>
</tbody>
</table>

<h3><a name="vat_num_fields" ></a>vat_num_fields<br></h3>
<p>Validates VAT numbers</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
GB464645, AT134645
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
GB1321, D5464D
</td>
</tr>
</tbody>
</table>

<h3><a name="vin_fields" ></a>vin_fields<br></h3>
<p>Checks Vehicle Identification Numbers (VINs)</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
abcDEFghp3t123456, A1C3E5G6Y98123456, A1C3E5G6FFF123456
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
ABBBC3E5G6F9F12345HHH
</td>
</tr>
</tbody>
</table>

<h3><a name="weekday_fields" ></a>weekday_fields<br></h3>
<p>Weekday names (numbers) validation.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
3, 05, Tue, Sunday
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
8, 09, 12, Wdn, 1st
</td>
</tr>
</tbody>
</table>

<h3><a name="word_fields" ></a>word_fields<br></h3>
<p>Checks for single words</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
someword
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
The word
</td>
</tr>
</tbody>
</table>

<h3><a name="word_limit" ></a>word_limit<br></h3>
<p>Validates if number of words not greater than stated.</p>
<p>Syntax:</p>
<div class="preformatted"><div class="preformattedContent">
word_limit = field_name (caption), word_count [; field_name (caption), word_count ...]
</div></div>
<p>Example:</p>
<div class="preformatted"><div class="preformattedContent">
word_limit = message (Leave Your Message), 10
</div></div>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
This is some message
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
This message is longer than 10 words, so it cannot be passed.
</td>
</tr>
</tbody>
</table>

<h3><a name="year_fields" ></a>year_fields<br></h3>
<p>Validates the number of the year.</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
2007, 06, 98
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
132, 24566
</td>
</tr>
</tbody>
</table>

<h3><a name="zip_fields" ></a>zip_fields<br></h3>
<p>US (ZIP and ZIP+4) validation</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
55127, 55127-1234
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
D11, 501-555
</td>
</tr>
</tbody>
</table>

<h3><a name="zip_files_fields" ></a>zip_files_fields<br></h3>
<p>Checks for zip archive files extents</p>
<table class="simple">
<tbody>
<tr>
<td>
VALID
</td>
<td>
secret.zip
</td>
</tr>
<tr>
<td>
INVALID
</td>
<td>
file.doc
</td>
</tr>
</tbody>
</table>

<h2><a name="File extensions allowed for upload" ></a>File extensions allowed for upload<br></h2>
<p>Set the allowed file extensions for user uploaded files in file_filter_fields.</p>
<p>Syntax:</p>
<div class="preformatted"><div class="preformattedContent">
allowed_files = ext<br>or<br>allowed_files = ext1|ext2|ext3
</div></div>
<p>Example:</p>

<p>In your form:</p>
<div class="preformatted"><div class="preformattedContent">

…<br>&lt;input type="file" name="attach"&gt;<br>…
</div></div>
<p>Config file:</p>
<div class="preformatted"><div class="preformattedContent">
allowed_files = gif|bmp|png<br>file_filter_fields = attach (Picture)
</div></div>
<p>Result:&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p>Only *.gif, *.bmp, *.png files are allowed for user upload.</p>
]]></description>
                                    <pubDate>Sat, 06 Jun 2009 12:00:00 +0000</pubDate>
                                    <guid>https://www.web-site-scripts.com/knowledge-base/article/AA-00166</guid>
                    </item>
                
    </channel>
</rss>