<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>Web-Site-Scripts.com - Most Popular</title>
        <link>http://www.web-site-scripts.com/knowledge-base/?action=getCategory&amp;data=0</link>
        <description><![CDATA[Root directory]]></description>
        <language>en-us</language>
        <generator>KnowlageBase RSS Generator</generator>

         
                <item>
                        <title>Installation of URL Rewriting module (IIRF) for IIS6/IIS7</title>
                                    <link>http://www.web-site-scripts.com/knowledge-base/article/AA-00461</link>
                                    <description><![CDATA[<p>IIS servers do not support URL rewriting by default, so we would need to use a third party tool.</p>
<p>This guide cover installation of Ionic's ISAPI Rewriting Filter (IIRF) on a IIS server and setup of the rewrite configuration required by KMP. If you would like to find out more about IIRF, you can refer to its <a href="http://cheeso.members.winisp.net/iirf20Help/frames.htm" target="_blank" rel="nofollow">documentation</a>.</p>
<p></p>
<div class="info">
<div class="infoHeader">Note</div>
<div class="infoContent">
<p>IIS7 servers support native component for URL rewriting. It is much easier to install. If you're using IIS7, we <b>recommend </b>to follow the <a href="ARTICLE_URL#431##AA-00470#" target="">Installation of native URL Rewriting module (URL Rewrite) for IIS7</a>&nbsp;instead of current guide.</p>
</div>
</div>
<p></p>
<ul><li><span style="line-height: 16px;"><a href="#iis56" target="">Installing on IIS5 or IIS6</a> (Windows 2000, Windows XP, or Windows Server 2003)</span></li><li><span style="line-height: 16px;"><a href="#iis7" target="">Installing on IIS7</a> (Windows Server 2008, Windows Vista, or Windows 7)<br></span></li><li><span style="line-height: 16px;"><a href="#configuring" target="">Setting Up Rewrite Configuration for Knowledgebase Manager Pro</a> (common for all IIS servers and systems)</span></li></ul><div><div class="attention">
<div class="attentionHeader">Warning<br></div>
<div class="attentionContent">
<p>If you're using <b>Helicon ISAPI Rewrite</b>, you do not need to install any other URL rewrite software. KMP works with this module from the box.</p>
<p>
If you're already using some <b>other URL Rewrite tool</b>, we strongly recommend to completely uninstall it, because it may interfere with IIRF and it is most likely that URL rewriting will not work correctly, and KMP may be inaccessible even if you follow the instructions in this article carefully.</p>
</div>
</div>
</div>
<h1><a name="iis56" ></a>Installing on IIS5 or IIS6</h1>
<p>Follow these steps to install IIRF on IIS5 or IIS6.</p>
<p>&nbsp;IIS v5.0 is included with Windows 2000. IIS v5.1 is included with Windows XP. IIS v6.0 is included with Windows Server 2003. These are the steps for installing IIRF v2.0 on to any of those operating systems.</p>
<p></p>
<p></p>
<ol><li>First of all, download the IIRF v2.0+ package from the <a href="http://iirf.codeplex.com/" target="_blank" rel="nofollow">official website</a>&nbsp;and&nbsp;extract it.</li><li>Copy the IIRF DLL (IIRF.dll) from the "bin" folder to an appropriate folder on your server, such as <i>c:\windows\system32\inetsrv\IIRF</i> . Or it could be in a totally separate directory tree. It's up to you.</li><li>Grant READ permissions on the DLL, and the ini file, to the appropriate principals. To do this, first view the IIRF.dll in Windows Explorer.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/dll-folder.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="298" hspace="0" vspace="0" width="692"><br><br>Figure 1:Viewing the IIRF.dll in Explorer<br><br>On Windows XP or Windows 2000, the appropriate Windows principal is, by default, IUSR_&lt;hostname&gt;, although an IIS administrator is free to configure IIS to use an alternative identity. Grant READ permissions to this identity.<br><br>On Windows Server 2003, grant Read permissions to the IIS_WPG group for the DLL and the ini file. According to Microsoft's documentation on IIS6 and Application Pool identities, on a clean installation of IIS 6.0, the IIS worker process (w3wp.exe) runs under the new built-in Network Service account by default. As with IIS 5, an IIS administrator can change this, but typically this is the account used. Also, On a clean installation of IIS 6.0, the IIS_WPG group contains the Network Service, Local Service, LocalSystem, and IWAM_ComputerName accounts. If you change the identity for the Application Pool to be something other than NetworkService, then you'll have to grant that identity the appropriate READ permissions.<br><br>Right click on the IIRF.dll, and select Properties...<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/explorer-ws2003-props.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="501" hspace="0" vspace="0" width="367"><br><br>Click the Add button and, if running on Windows Server 2003, specify IIS_WPG as the group. If running on Windows XP, specify the appropriate IUSR_&lt;hostname&gt; principal.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/explorer-ws2003-add.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="245" hspace="0" vspace="0" width="465"><br><br>Click OK, and OK again. Confirm you want to make the changes if necessary.<br><br>Create the iirfGlobal.ini file. In Explorer, in the same folder where you installed IIRF.dll, right click and create a new text file.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/explorer-ws2003-createini.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="481" hspace="0" vspace="0" width="750"><br><br>Specify the name as "iirfGlobal.ini" (without quotes). Confirm the change of the file extension. Finally, set the permissions on the INI file in the same way you've set permissions on the DLL.<br><br>&nbsp;You do not need to put anything to it, you just need an empty file.<br><br>Verify that the permissions are set properly. Browse to the IIRF.dll in Windows Explorer. Right click on the file. Select Properties...Security tab, then click the button labeled "Advanced". You should see something like this:<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/verifying-permissions.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="474" hspace="0" vspace="0" width="556"><br><br>Click on the Effective Permissions tab, click the Select button, and on Windows Server 2003, specify NETWORK SERVICE for the identity. On Windows XP or 2000, specify IUSR_&lt;hostname&gt;. Click OK and you should see something like this:<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/effective-permissions.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="474" hspace="0" vspace="0" width="556"><br><br>Notice that the checkbox next to List folder / read data is checked. This shows that the appropriate permissions are available to the NetworkService identity on the Iirf.ini file. If you don't get this checkbox, then you'll need to go back and edit the permissions so that the identity used by w3wp.exe can read the Iirf.ini file.<br><br>Browse to the iirfGlobal.ini file, and verify permissions in the same way.<br><font color="#336600"><b><font color="#000000"><span style="font-weight: normal; line-height: 16px;"><br><div class="info">
<div class="infoHeader">Note</div>
<div class="infoContent">
<p>Incorrectly set permissions on the DLL or INI file is the #1 problem in IIRF installations, so please do take the time to get this right. If the IIS process cannot read the DLL or ini file because of security restrictions, the filter will not work.</p>
</div></div></span></font></b></font></li><li>Now, add the DLL as an ISAPI Filter. To do so, open the Internet Information Services Manager. In Windows XP, You can do this via Start... Run... %systemRoot%\System32\inetsrv\iis.msc . Or, browse to Start...Control Panel...Administrative Tools, and select IIS Manager.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/winxp-ctrlpanel-admintools.gif" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="371" hspace="0" vspace="0" width="566"><br><br>&nbsp;On Windows Server 2003, Start &gt; Administrative Tools &gt; Internet Information Services (IIS) Manager.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/ws2003-admintools-2.jpg" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="627" hspace="0" vspace="0" width="549"><br><br></li><li>Choose the appropriate level for the ISAPI filter:</li><ul><li><span style="line-height: 16px;">to use the ISAPI filter with all Web sites, select the "Web Sites" icon just under the machine name.</span></li><li><span style="line-height: 16px;">to use the ISAPI filter with a specific Web site, select the icon for that Web site (for example, the default Web site). This is <b>recommended </b>if you're going to use IIRF with KMP only - you just enable it for the website where KMP is installed.<br><div class="attention">
<div class="attentionHeader">Do not install it twice!</div>
<div class="attentionContent">
<p>
Do not enable the ISAPI filter on the "Web Sites" level AND on the website with KMP <b>at the same time!</b> In this case URLs will be rewritten twice and KMP will not work properly.</p></div></div></span></li></ul><li>Right-click the level (icon) that you selected. Click the Properties button.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iismgr-properties.jpg" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="275" hspace="0" vspace="0" width="232"><br></li><li>Click the ISAPI Filters tab.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/isapi-filters-tab.jpg" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="307" hspace="0" vspace="0" width="458"><br></li><li>Click Add. Type a name for the ISAPI filter. Eg, "Ionic Rewriter". Click Browse and select the ISAPI filter DLL that you copied in step 1. Click OK.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/isapi-module.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="292" hspace="0" vspace="0" width="432"><br><br>If you have multiple ISAPI filters running, you may want to modify the filter load order. For example, if you have Ruby-on-Rails installed on IIS, it typically uses an ISAPI filter. You may need to specify that IIRF should load first, prior to Rails. What this means is that IIRF gets the first chance to rewrite the URL, before Rails sees the URL.<br><br><div class="info">
<div class="infoHeader">Information Box Title</div>
<div class="infoContent">
<p>The relative load order of ISAPI filters is observed only for those filters that have the same priority.</p>
</div></div></li><li>&nbsp;&nbsp;Finally, save configuration and restart IIS. To do this, right click on the Server node in IIS Manager, and select All Tasks.Then Save Configuration to Disk<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/save-configuration.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="340" hspace="0" vspace="0" width="418"><br><br>Then&nbsp;right click on the Server node in IIS Manager again, and select All Tasks.Then&nbsp;Restart IIS<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/restart-iis.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="340" hspace="0" vspace="0" width="422"><br></li><li>IIRF is now installed. You must now <b>proceed to </b><a href="#configuring" target=""><b>configuring IIRF</b></a>.&nbsp;</li></ol><div>
<h1><a name="iis7" ></a>Installing on IIS7</h1>
<p>IIS v7 is included with Windows Server 2008, Windows
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Vista, and Windows 7. These are the steps required to install IIRF on either of
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;those operating systems.</p>
<p>To configure IIRF on IIS7, follow these steps:</p>
<p></p>
<ol><li>First of all, download the IIRF v2.0+ package from the&nbsp;<a href="http://iirf.codeplex.com/" target="_blank" rel="nofollow" style="padding: 0px; margin: 0px; text-decoration: underline; color: rgb(51, 102, 153) ! important; cursor: pointer;">official website</a>&nbsp;and&nbsp;extract it.</li><li>Copy the IIRF DLL (iirf.dll) from the "bin" folder to an appropriate folder on your server, such as&nbsp;<i>c:\windows\system32\inetsrv\IIRF</i>&nbsp;. Or it could be in a totally separate directory tree. It's up to you.<br></li><li>Create the iirgGlobal.ini file. In Explorer, in the same folder where you installed IIRF.dll, right click and create a new text file. You do not need to put anything to it, you just need an empty file.</li><li>Be sure to allow the appropriate user or security group read + execute access to the DLL and the ini file. On IIS7, it should be sufficient to grant READ permissions to NetworkService or IIS_WPG.<br><br>To verify that the permissions are set properly on <b>each file</b>, browse to the file in Windows Explorer. Right click on the file. Select Properties...Security tab, then click the button labeled "Advanced". You should see something like this:<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iis7/verifyingpermissions.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="480" hspace="0" vspace="0" width="636"><br><br>Click on the Effective Permissions tab, click the Select button, and specify NETWORK SERVICE for the identity. Click OK and you should see something like this:<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iis7/effectivepermissions.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="480" hspace="0" vspace="0" width="636"><br><br>Notice that the checkbox next to List folder / read data is checked. This shows that the appropriate permissions are available to the NetworkService identity on the Iirf.ini or Iirf.dll file. If you don't get this checkbox, then you'll need to go back and edit the permissions so that the identity used by w3wp.exe can read the iirf.ini or iirf.dll file. Repeat these steps for both IIrf.dll and Iirf.ini.<br><font style="padding: 0px; margin: 0px; line-height: normal;" color="#336600"><b><font style="padding: 0px; margin: 0px; line-height: normal;" color="#000000"><span style="padding: 0px; margin: 0px; font-weight: normal; line-height: 16px;"><br><div class="info" style="padding: 10px 17px 0px; margin: 0px 0px 17px; background-color: rgb(223, 242, 197); font-size: 12px;"><div class="infoHeader" style="padding: 1px 0px 2px 34px; margin: 0px; background-image: url(&quot;http://www.web-site-scripts.com/knowledge-base/admin/images/article_templates/info.gif&quot;); background-repeat: no-repeat; color: rgb(51, 102, 0); display: block; font-size: 12px; font-weight: bold; height: 15px; vertical-align: middle;">Note</div><div class="infoContent" style="padding: 10px 0px 5px; margin: 0px; font-size: 12px;">
<p style="padding: 0px; margin: 0px 0px 17px; font-size: 12px; line-height: 1.4em;">Incorrectly set permissions on the DLL or INI file is the #1 problem in IIRF installations, so please do take the time to get this right. If the IIS process cannot read the DLL or ini file because of security restrictions, the filter will not work.</p>
</div></div></span></font></b></font><br></li><li>Open the IIS Manager. Simply use&nbsp;Start... Run... %systemRoot%\System32\inetsrv\iis.msc</li><li>If you would like to configure IIRF to be a "global filter" (applies to all websites and virtual directories), then, select the machine or server name on the left-hand side tree. This should be the top-most (root) node in the tree.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iis7/vista-iis-manager-2.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="252" hspace="0" vspace="0" width="288"><br><br>If you would like to configure IIRF for an individual web site, expand the server node, and select the appropriate web site on the left-hand side tree. tree.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iis7/vista-iis-manager-3.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="252" hspace="0" vspace="0" width="288"><br><br><br></li><li>In either case, in the center-right panel of the MMC window you should now see a set of icons. One of them is labeled "ISAPI Filters". Double click it. Your window should look similar to the following:<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iis7/vista-iis-manager-5.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="480" hspace="0" vspace="0" width="814"><br><br></li><li>On the far right hand side in the "Actions" pane for the MMC window, click the top-most item, which reads "Add...".</li><li>You get a simple dialog with a box for filter name and a box for the path to the Filter DLL. Type in "IIRF" or "Ionic Rewrite" for the filter name (the particular name is not important), and the full path for the DLL, eg, c:\windows\system32\inetsrv\IIRF\IIRF.dll .<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iis7/vista-iis-manager-6.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="257" hspace="0" vspace="0" width="449"><br><br>Click OK.</li><li>IIRF is now installed. You must now <b>proceed to&nbsp;</b><a href="#configuring" target="" style="padding: 0px; margin: 0px; text-decoration: underline; color: rgb(51, 102, 153) ! important; cursor: pointer;"><b>configuring IIRF</b></a>.&nbsp;</li></ol><div><br></div>
<p>&nbsp;&nbsp; &nbsp;&nbsp;</p>
<div class="info">
<div class="infoHeader">For 64-bit systems</div>
<div class="infoContent">
<p>If your OS is 64-bit, you must select "Enable 32-Bit Application" in the Advanced Settings on the App Pool, in order to let IIRF run.&nbsp;<br></p>
<p><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iis7/enable-32-bit.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="728" hspace="0" vspace="0" width="718"><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iis7/enable-32-bit.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="0" hspace="0" vspace="0" width="0"><br></p>
</div>
</div>
<h1><a name="configuring" ></a>Setting Up Rewriting Configuration for Knowledgebase Manager Pro</h1>
<h1><span style="font-size: 12px; font-weight: normal; line-height: 16px;">Now we need to create a file that contains all rewriting rules for KMP.</span></h1>
<p></p>
<ol><li>Open the web root folder for the website with KMP (e.g.&nbsp;C:\Inetpub\wwwroot).</li><li>Create "iirf.ini" file in this folder with following contents:<br><br><div class="preformatted">
<div class="preformattedContent"><div class="preformattedContent">RewriteEngine ON<br>StatusUrl /iirfStatus</div><div class="preformattedContent">RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule ^/PATH-TO-KMP/hosts/hosted(.*)$ /PATH-TO-KMP/hosts/hosted/index.php?/$1 [L]</div><div class="preformattedContent">RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule ^/PATH-TO-KMP/hosts/preview(.*)$ /PATH-TO-KMP/hosts/preview/index.php?/$1 [L]</div><div class="preformattedContent">RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule ^/PATH-TO-KMP/admin(.*)$ /PATH-TO-KMP/admin/index.php?/$1 [L]</div><div class="preformattedContent">RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule ^/PATH-TO-KMP/(.*)$ /PATH-TO-KMP/index.php?/$1 [L]</div></div></div></li><li>
<p>Replace<font><span style="line-height: 16px;">&nbsp;&nbsp;"PATH-TO-KMP"&nbsp;with correct path to Knowledgebase Manager Pro files starting from the web root folder. For example, if you uploaded KMP to the&nbsp;C:\Inetpub\wwwroot\KB directory, you need to replace "PATH-TO-KMP" with "KB" like this:</span></font></p>
<font face="Courier"><span style="line-height: 13px;"><span style="font-family: Arial,Helvetica,sans-serif; line-height: 16px;"><div class="preformatted">
<div class="preformattedContent"><div class="preformattedContent"># This is an example, it may not work for you if you have different path to KMP<br>RewriteEngine ON<br>StatusUrl /iirfStatus</div><div class="preformattedContent">RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule ^/<span style="background-color: rgb(255, 255, 0);">kb</span>/hosts/hosted(.*)$ /<span style="background-color: rgb(255, 255, 0);">kb</span>/hosts/hosted/index.php?/$1 [L]</div><div class="preformattedContent">RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule ^/<span style="background-color: rgb(255, 255, 0);">kb</span>/hosts/preview(.*)$ /<span style="background-color: rgb(255, 255, 0);">kb</span>/hosts/preview/index.php?/$1 [L]</div><div class="preformattedContent">RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule ^/<span style="background-color: rgb(255, 255, 0);">kb</span>/admin(.*)$ /<span style="background-color: rgb(255, 255, 0);">kb</span>/admin/index.php?/$1 [L]</div><div class="preformattedContent">RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule ^/<span style="background-color: rgb(255, 255, 0);">kb</span>/(.*)$ /<span style="background-color: rgb(255, 255, 0);">kb</span>/index.php?/$1 [L]</div></div></div></span></span></font><div class="info">
<div class="infoHeader">Note</div>
<div class="infoContent">
<p>
Please note that you need to replace 8&nbsp;occurrences! Do not forget the trailing slash: "<span style="background-color: rgb(255, 255, 0);">/</span>kb/index.php?/$1", NOT "kb/index.php?/$1"</p>
</div></div></li><li>That's all! You can check if you have installed everything correctly by opening this URL in your browser:&nbsp;http://localhost/iirfStatus (it works only if you open it on the same machine where IIS with IIRF runs). You'll get something like this:<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/iis7/iirf-test.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="296" hspace="0" vspace="0" width="246"><br><br></li><li><font face="Courier"><span style="line-height: 16px; font-family: Arial,Helvetica,sans-serif;">Go to Styling and Front-end Settings to switch URL Rewriting ON and save the new settings.<br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00461/rewrite-on.PNG" alt="" title="" width="667" height="89" border="0" hspace="0" vspace="0" align="" style="margin-right: 0px; margin-left: 0px; margin-bottom: 0px; margin-top: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; "><br></span></font></li><li><font face="Arial, Helvetica, sans-serif"><span style="line-height: 16px;">Open a KMP front-end page in your browser to check if URL Rewrite works correctly now.</span></font></li><li><font face="Courier"><span style="line-height: 16px; font-family: Arial,Helvetica,sans-serif;">If you still got the 404, please <a href="http://www.web-site-scripts.com/support-center.html" target="">contact our support</a> for help.<br><br></span></font></li></ol><div class="info">
<div class="infoHeader">Troubleshooting<br></div>
<div class="infoContent">
<p>You can find documentation for IIRF <a rel="nofollow" target="_blank" href="http://cheeso.members.winisp.net/iirf20Help/frames.htm">here</a>. There are installation troubleshooting instructions under the Installing IIRF &gt; Verifying and Troubleshooting Installation.<br></p>
</div>
</div>
<p><br></p>
<br>
<p></p>
</div>
<p></p>
<p></p>]]></description>
                                    <pubDate>Tue, 19 Jan 2010 04:02:21 -0600</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00461</guid>
                    </item>
                <item>
                        <title>Installation of KnowledgeBase Manager Pro</title>
                                    <link>http://www.web-site-scripts.com/knowledge-base/article/AA-00167</link>
                                    <description><![CDATA[<ol>
<li><a target="" href="#Overview">Overview</a></li>
<li><a target="" href="#Uploading%20Files">Uploading Files</a></li>
<li><a target="" href="#Requirements">Requirements</a></li>
<li><a target="" href="#File%20System%20Permissions">File System Permissions</a></li>
<li><a target="" href="#Database%20Setup">Database Setup</a></li>
<li><a target="" href="#System%20Preferences">System Preferences</a></li>
<li><a target="" href="#Administrator%27s%20Account">Administrator's Account</a></li>
<li><a target="" href="#Summary">Summary</a></li><ul><li><a target="" href="#Cron_Setup">Cron Setup</a><br></li></ul>
</ol>
<h2><a name="Overview" ></a>Overview</h2>
<p>Installing Knowledgebase Manager Pro means uploading files to your web server and completing the simple installation wizard. The wizard will ask you to configure file system permissions, database, administrator account and some other settings.</p>
<h2><a name="Uploading Files" ></a>Uploading Files</h2>
<p>To upload Knowledgebase Manager Pro you need to unzip contents of the "package" directory from the latest KMP package onto your local hard drive and, using an FTP client for example, login to your web server and copy Knowledgebase Manager Pro files through.&nbsp;</p>
<p>To start the setup wizard, navigate to the directory you have uploaded Knowledgebase Manager Pro to. For example if you uploaded files to the "kmp" under the web root, open http://www.yoursite.com/kmp/ in your browser to start.</p><p>If you have a blank screen instead of the installation wizard <a href="ARTICLE_URL#512##AA-00551#" target="">check if JavaScript is enabled in your browser</a>.</p><p>If you get a <a href="ARTICLE_URL#557##AA-00596#" target="">"Don't have permissions" error, check this guide for help</a>.</p><p></p><div class="info">
<div class="infoHeader">PHP</div>
<div class="infoContent">
<p>You need to have PHP already installed on the server to start Knowledgebase Manager Pro installation. If you do not have it yet, <a href="ARTICLE_URL#458##AA-00497#" target="">check this guide to find out how to install PHP</a>.</p><p></p><div></div><p></p>
</div>
</div>
<p>You will see the following page. Choose language if necessary and click "Apply".&nbsp;</p><p></p>
<p><img style="margin: 0px; border-width: 0px;" title="" alt="Step 1" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00167/installation-step-1.png" align="" border="0" height="541" hspace="0" vspace="0" width="654"><br></p>
<p>Enter the product key. You can get it from your account in the <a href="http://www.web-site-scripts.com/member-area/" target="_blank" rel="nofollow">member area</a>.</p>
<p><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://web-site-scripts.com/knowledge-base/admin/media_store/2//AA-00167/product-key.png" align="" border="0" height="311" hspace="0" vspace="0" width="660"></p>
<p>You can skip activation if you're installing KMP on a test server that doesn't have internet connection.&nbsp;To skip product activation leave this field empty.</p><p>You must also agree with <a target="_blank" href="http://www.web-site-scripts.com/eula.html">End-User License Agreement</a> to proceed.<br></p>
<p>Click "Next" to start the installation.</p>
<h2><a name="Requirements" ></a>Requirements</h2>
<p>For a successful installation of the Knowledgebase Manager Pro your sever must match the <a href="ARTICLE_URL#429##AA-00468#" target="">system requirements</a>.</p>
<p><img style="margin: 0px; border-width: 0px;" title="" alt="Step 2" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00167/installation-step-2.png" align="" border="0" height="542" hspace="0" vspace="0" width="656"></p>
<p>On this step you may be asked to install the required modules.</p>
<h3><a name="curl" ></a>Curl setup</h3>
<p>If you are asked to install Curl, chose follow one of the guides below according to your server preferences:</p>
<p></p>
<ul><li><span style="line-height: 16px;"><a href="ARTICLE_URL#441##AA-00480#" target="_blank">Installing Curl on Windows + Apache or Windows + IIS</a></span></li><li><span style="line-height: 16px;"><a href="ARTICLE_URL#443##AA-00482#" target="_blank">Installing Curl on Linux or a UNIX-like system</a></span></li><li><a href="ARTICLE_URL#442##AA-00481#" target="">Installing Curl on WAMP</a></li></ul>
<p></p><p></p>
<h2><a name="File System Permissions" ></a>File System Permissions</h2>
<p>Knowledgebase Manager Pro requires some files and directories to have special permissions set. The exact permissions may vary from server to server however the ones that should work on the majority of servers are: write and read permissions for owner and read permissions for others. It can be set up by chmod 755 (or chmod 777 depending on server configuration) command for folders and chmod 644 (or chmod 666) command for files in UNIX systems.&nbsp;</p>
<p>Open our <a href="ARTICLE_URL#388##AA-00427#" target="_blank">guide that describes how to set files and folders access permissions efficiently</a> in a new window or browser tab. It will help you to set necessary permissions right now in a few clicks and it also includes the directions for setting secure permissions after installation.</p>
<p>You cannot proceed to the next step until all the system permissions are set up correctly. If you have some difficulties with this step do not hesitate to contact <a href="http://www.web-site-scripts.com/support-center.html" target="_blank">our support</a> or your system administrator.</p>
<p><img style="margin: 0px; border-width: 0px;" title="" alt="Step 3" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00167/installation-step-3.png" align="" border="0" height="530" hspace="0" vspace="0" width="656"><br></p>
<h2><a name="Database Setup" ></a>Database Setup</h2>
<p>Knowledgebase Manager Pro supports MySQL and MS SQL database to store the data. Select a desired database type and then select a PHP extension which you're going to use. If it says that no extensions for your database type are available, <a href="ARTICLE_URL#116##AA-00155#" target="">learn how to install PHP extensions for databases</a>.</p><p><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00167/installation-step-4-with-mssql.png" style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; " title="" alt="" border="0"></p><p><p style="line-height: 18px; ">You need to create an empty database on this step.&nbsp; This is usually can be done within Control Panel or cPanel web interface of your hosting account.<b>&nbsp;If it asks you for character set and collation, please select character set: utf8, and collation: utf8_general_ci (this is needed to MySQL).</b></p><p style="line-height: 18px; ">Your MySQL or MS SQL user account should also be granted full access to that database (including CREATE TABLE and ALTER TABLE operators) because installation wizard will need to create some tables and fill this database during the setup process.&nbsp;</p><p style="line-height: 18px; ">If you do not have MySQL on your server,&nbsp;<a href="ARTICLE_URL#457##AA-00496#" target="">check this guide to find out where to get it</a>.</p><p style="line-height: 18px; ">For MySQL: the&nbsp;<a href="ARTICLE_URL#250##AA-00289#" target="">"STRICT_TRANS_TABLES" option&nbsp;<b>must</b>&nbsp;be disabled.</a></p><p style="line-height: 18px; ">If you're installing it on MSSQL&nbsp;<a href="ARTICLE_URL#615##AA-00654#" target="">make sure that Full-text Indexing is enabled</a>. This must be done&nbsp;<b>prior</b>&nbsp;to the installation.</p><p style="line-height: 18px; ">If you're using MSSQL, you need to specify an account with SQL Server instead of using Windows Pass-through authentication when connecting to MSSQL.</p><p style="line-height: 18px; ">Host names "<span style="font-weight: bold; ">localhost</span>" and "<span style="font-weight: bold; ">127.0.0.1</span>" are common for most servers where web server software (e.g. Apache or IIS) and database are installed on the same machine (it is true for most hosting plans and when you install it on your PC or server), but if the Installation Wizard is unable to connect to the database server with this address, check for your hosting account documentation or contact your ISP or system administrator for correct SQL server name or IP address.<br></p><p style="line-height: 18px; ">If your database server uses non-default port, you can specify it within the host field separated by colon from the host name itself, e.g.&nbsp;"<span style="font-weight: bold; ">127.0.0.1:3307</span>"</p><p style="line-height: 18px; ">Tables prefix field should be empty by default. This is optional field that allows you to install Knowledgebase Manager Pro to the database that already contain tables of some other software. Tables prefix is added to a table name without any additional symbols, i.e. if you set "kmp_" as prefix and the table named "accounts" is going to be created, then setup wizard will name it "kmp_accounts".</p><p style="line-height: 18px; ">Click "Test" to check the database connection and if it is successful, click "Next" to fill the database.</p></p><p><div class="info">
<div class="infoHeader">What if the database population process stops and it doesn't let you go on?</div>
<div class="infoContent">
<p>Sometimes after successful database connection you click "Next" and it starts populating the database, but after about 30 seconds it stops. This happens because PHP and FastCGI timeouts are too low and script is unable to complete database population in time. In this case you need to setup&nbsp;<a href="ARTICLE_URL#542##AA-00581#" target="">recommended PHP and FastCGI settings</a>. Then try again.
</p>
</div>
</div>
</p><h2><a name="System Preferences" ></a>System Preferences</h2>
<p>On this step you can set up SMTP settings. Default SMTP settings are detected automatically and work on most servers so you do not usually need to change them. If you do not receive test email (check SPAM folder first), you can contact your ISP or refer to your hosting documentation to receive custom SMTP settings. These settings can be changed after installation.</p>
<p><img style="margin: 0px; border-width: 0px;" title="" alt="Step 5" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00167/installation-step-5.png" align="" border="0" height="568" hspace="0" vspace="0" width="660"><br></p><p>When all corrections are done, click the "Next" button.</p>
<h2><a name="Administrator's Account" ></a>Administrator's Account</h2>
<p>Here you need to enter your name, e-mail, create login and password and click "Save" button.</p>
<p>Please remember your login and password. You will need them to login to Knowledgebase Manager Pro.</p>
<p><img style="margin: 0px; border-width: 0px;" title="" alt="Step 6" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00167/installation-step-6.png" align="" border="0" height="581" hspace="0" vspace="0" width="660"><br></p>
<h2><a name="Summary" ></a>Summary</h2>
<p>This is the last step of the installation wizard. Here you can check all the settings and installation results made in the previous steps and setup cron jobs.</p>
<p><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://web-site-scripts.com/knowledge-base/admin/media_store/2//AA-00167/installation-step-7.png" align="" border="0" height="0" hspace="0" vspace="0" width="0"><img style="margin: 0px; border-width: 0px;" title="" alt="Step 7" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00167/installation-step-7.png" align="" border="0" height="623" hspace="0" vspace="0" width="655"></p>
<p>In order to complete the installation you should add a task for Knowledge Base Manager Pro pseudo-cron to scheduler application. This step is optional and allows sending of updated content to subscribers, run indexation of knowledge base for automated related articles creation, periodical database backups, and attachments indexation.</p>

<h3><a name="Cron_Setup" ></a>Cron setup guides</h3><p>Chose your platform:</p><p></p><ul><li><span style="line-height: 16px;"><a href="ARTICLE_URL#446##AA-00485#" target="">Windows XP/2003</a></span></li><li><span style="line-height: 16px;"><a href="ARTICLE_URL#448##AA-00487#" target="">Windows 7/Vista/2008</a></span></li><li><span style="line-height: 16px;"><a href="ARTICLE_URL#445##AA-00484#" target="">Linux/UNIX</a></span></li><li><span style="line-height: 16px;"><a href="ARTICLE_URL#447##AA-00486#" target="">Control Panel (e.g. Plesk)</a></span></li></ul><p></p>
<p>If everything is arranged purely, then you get the green light to finish the installation process by clicking on "Finish" button.</p>

<p>If you get any errors or other issues after installation, please take a look at <a href="http://www.web-site-scripts.com/knowledge-base/category/74/0/10/KnowledgeBase-Manager-Pro/Troubleshooting/" target="">troubleshooting section</a>. If you can't find the solution there, feel free to submit your question at our <a href="http://www.web-site-scripts.com/support-center.html" target="">support center</a>.</p><p>Later, you can <a href="ARTICLE_URL#542##AA-00581#" target="">check the post installation checklist</a>&nbsp;to enable and configure additional features and fine-tune system preferences.</p>]]></description>
                                    <pubDate>Wed, 06 May 2009 14:00:00 -0500</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00167</guid>
                    </item>
                <item>
                        <title>Installation of the attachment indexation modules</title>
                                    <link>http://www.web-site-scripts.com/knowledge-base/article/AA-00426</link>
                                    <description><![CDATA[<p><a name="antiword" ></a><a name="ppthtml" ></a><a name="pdftohtml" ></a><a name="unrtf" ></a><a name="php-s-exif-library" ></a><a name="php-s-zip" ></a>KnowledgeBase Manager Pro is able to run indexation of files attached to knowledge base in order to make them searchable. Some documents can be searched without any additional tools, others need PHP modules enabled or third party tools installed. All modules and tools are <b>free</b>.<br></p><p></p><p></p><ul><li><span style="line-height: 16px;"><a href="#supported-types" target="">The list of supported file types</a></span></li><li><span style="line-height: 16px;"><a href="#windows-installation" target="">Installation of plugins and modules for search indexation on Windows server</a></span></li><li><span style="line-height: 16px;"><a href="#unix-installation" target="">Installation of plugins and modules for search indexation on UNIX-like server</a></span></li></ul><p></p><h2><a name="supported-types" ></a>The list of supported file types</h2><p></p>
<ul><li>MS Office 2003 Word Documents&nbsp; = Supported formats: .doc, .dot. AntiWord (free) is required.</li><li>MS Office 2003 Excel Workbooks = Supported formats: .xls, .xlt. Indexation tools are already built-in.</li><li>MS Office 2003 PowerPoint Presentations = Supported formats: .ppt, .pot. ppthtml (free) is required.</li><li>MS Office 2007 Word Documents = Supported formats: .docx, .docm, .dotx, .dotm. <a rel="nofollow" target="_blank" href="http://www.php.net/zip">PHP ZIP library</a>&nbsp;(free) is required.<br></li><li>MS Office 2007 Excel Workbooks = Supported formats: .xlsx, .xlsm, .xltx, .xltm. PHP ZIP library is required.</li><li>MS Office 2007 PowerPoint Presentations = Supported formats: .pptx, .pptm, .potx, .potm. PHP ZIP library is required.</li><li>MS Office 2007 Visio Drawing = Supported format: .vdx. Indexation tools are already built-in.</li><li>Adobe PDF Documents = Supported format: .pdf. pdftohtml (free) is required.</li><li>RTF Documents = Supported format: .rtf. unrtf (free) is required.</li><li>Plain-text Documents = Supported formats: .txt, .htm, .html, .shtml, .shtm, .txt, .php, .asp, .cfm, .cfml, .pl, .cgi, .aspx, .jsp.&nbsp;&nbsp;Indexation tools are already built-in.</li><li>Images = Supported formats: .jpg, .jpeg, .tiff, .tif. Meta data is indexed, not images by themselves. <a rel="nofollow" target="_blank" href="http://www.php.net/exif">PHP's EXIF library</a> (free) is required.</li></ul><h2><a name="windows-installation" ></a>Installation of plugins and modules for search indexation on Windows server</h2>PHP modules
<p>You also need to enable several PHP modules in order to use search indexation of MS Office 2007 documents and images metadata.</p>
<ol><li>Find the "ext" subdirectory of your PHP installation (it is C:\PHP\ext\ by default).</li><li>Check if the following files exist in that folder: php_exif.dll, php_mbstring.dll, php_zip.dll.</li><ol><li><span style="line-height: 19px;">If any of these files do not exist, you should run PHP installation and install appropriate module (Exif, Mbstring, or PHP ZIP respectively).</span></li></ol><li>Open the php.ini configuration file of your PHP engine.</li><li>Search for the "extension=" (without quotes).</li><li>You'll find the section with the list of PHP extensions. Some of them are commented with # symbol.</li><li>You should enable these modules by removing comment symbol (#). Be sure to move the php_mbstring.dll entry <b>before</b> the php_exif.dll. It won't work otherwise.<br>

<div class="preformatted">
<div class="preformattedContent">
extension=php_mbstring.dll<br>
extension=php_exif.dll<br>
</div>
</div>

</li><li>Restart the web server.</li></ol>

<div class="info">
<div class="infoHeader">
Note
</div>
<div class="infoContent">
If you have PHP v5.3 or higher, you do not need to enable PHP ZIP extension. It is already built-in to the PHP engine.
</div>
</div>

<h3><a name="windows-plugins" ></a>Indexation plugins<br></h3><p>We strongly recommend you to use the latest version of PHP. These plugins work under PHP v5.3+ correctly. Earlier versions of PHP have <a rel="nofollow" target="_blank" href="http://bugs.php.net/bug.php?id=44994">bugs</a> and may freeze when launch external programs (e.g. attachment indexation plugins) using Windows command line.</p><p><a rel="nofollow" target="_blank" href="http://windows.php.net/download/">Download the latest PHP package for Windows</a> (VC9 x86 Non Thread Safe is recommended).</p><p>PHP v5.3 doesn't support ISAPI anymore. So you need to use FastCGI instead.</p><p>Check guide for your version of IIS for installation of the latest PHP and FastCGI:</p><ul><li><a target="" href="ARTICLE_URL#452##AA-00491#">PHP and FastCGI for IIS6</a></li><li><a target="" href="ARTICLE_URL#456##AA-00495#">PHP and FastCGI for IIS7</a><br></li></ul><ol><li><span>Download the</span><span> </span><span>indexation-plugins.zip</span><span> </span><span>and antiword.zip</span><span> attachments <a href="#below" target="">below</a>.</span></li><li><span>Open properties for each zip file and check if they are not blocked by Windows "for security reasons". If yes, unblock them.<br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00426/unblock.png" alt="" title="" width="370" height="504" border="0" hspace="0" vspace="0" align="" style="margin-right: 0px; margin-left: 0px; margin-bottom: 0px; margin-top: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; "><br></span></li><li><span>Extract the contents of </span><span>the</span><b><span> </span><span></span><span>indexation-plugins.zip</span></b><span> </span><span>to the <b>\admin\application\libraries\search\plugins</b> folder of your KMP installation.</span></li><li><span>Add read and execute permissions for the web-server </span><span class="mediumtext">to the </span><span> <b>\admin\application\libraries\search\plugins</b> folder and its contents. If your server runs under IIS, you should grant </span><span>the </span><span class="mediumtext">Internet Guest Account with the read and execute permissions to that folder. If it is Apache server, you should check which user runs the Apache process and grant read and execute permissions for that user.<br></span></li><li><span>Extract the contents of the </span><span><b>antiword.zip</b> to the <b>C:\Antiword\</b> directory.</span></li><li><span>Add read and execute permissions to this folder and its contents as well.</span></li><li><span>Add read and execute permissions to the <b>%windir%\system32\cmd.exe</b> file (c:\windows\system32\cmd.exe by default). Typically you need to add read and write permissions to that file for the&nbsp;<span style="background-color: rgb(254, 254, 254); ">Internet Guest User (IUSER_SERVERNAME or IIS_IUSRS), but this may differ on your IIS installation</span>. If you can not change cmd.exe attributes due to company policy or lack of permissions, you can copy this file to any directory listed in system PATH environment variable and set&nbsp;read and execute permissions&nbsp;permissions to it there.<br></span></li></ol><h3>After installation of modules and plugins<br></h3>
<ol><li><span>Go to the KMP control panel.</span></li><li><span>Go to the Administration &gt; General Settings &gt; Search.</span></li><li>Set checkbox on the "Enable Attachments Indexation" and on each document type entry and click "Save".</li></ol><p>Now you can upload attachments and they will be automatically indexed for search. You can also run indexation for existing attachments. You need to <a target="" href="http://www.web-site-scripts.com/knowledge-base/article/AA-00167/11/Installation-of-KnowledgeBase-Manager-Pro.html#Cron_Setup">install cron script</a> to do that.<br>
</p><p></p><div class="info">
<div class="infoHeader">PPT and RTF</div>
<div class="infoContent">
<p>Currently PPT and RTF indexation plugins are not available for Windows servers.</p></div></div><p></p><p>
</p>
<p></p>
<h2><a name="unix-installation" ></a>Installation of plugins and modules for search indexation on UNIX-like server</h2>
<h3>Indexation plugins</h3>
<p>Run following command to install necessary modules on a system that has APT library (e.g. Ubuntu, Debian):<br></p>

<div class="preformatted">
<div class="preformattedContent">
apt-get install poppler-utils unrtf antiword ppthtml
</div>
</div>
<p>Or if your system supports <a rel="nofollow" target="_blank" href="http://yum.baseurl.org/">Yum</a> package manager you can run this command instead to install necessary modules:</p>

<div class="preformatted">
<div class="preformattedContent">
yum install pdftohtml unrtf antiword ppthtml
</div>
</div>

<p>Please note that if you're <a href="http://ftp.gnu.org/gnu/unrtf/" target="_blank" rel="nofollow">installing unRTF from tar.gz package</a>, you should use version 0.19.3 (unrtf-0.19.3.tar.gz file). This is the correctly working version - newer versions doesn't work properly and hang the indexation process.</p>
<h3>PHP modules</h3>
<ol><li>Open the php.ini configuration file.</li><li>Find the "extension_dir" parameter. It indicates the path to PHP extensions directory. Go to that directory and check that exif.so and zip.so files do exist there.<br></li><li>Add reference for the Exif and PHP ZIP extensions to the php.ini:<br>

<div class="preformatted">
<div class="preformattedContent">
extension=exif.so<br>
extension=zip.so<br>
</div>
</div>
</li>
<li>Restart the web server.<br></li></ol>
<p><br></p>
<h3>After installation modules and plugins<br></h3>
<ol><li><span>Go to the KMP control panel.</span></li><li><span>Go to the Administration &gt; General Settings &gt; Search.</span></li><li>Set checkbox on the "Enable Attachments Indexation" and on each document type entry and click "Save".</li></ol>
<p>Now you can upload attachments and they will be automatically indexed
for search. You can also run indexation for existing attachments. You
need to <a target="" href="../article/AA-00167/11/Installation-of-KnowledgeBase-Manager-Pro.html#Cron_Setup">install cron script</a> to do that.
</p>
<p><a name="below" ></a><br></p>]]></description>
                                    <pubDate>Tue, 15 Sep 2009 14:00:00 -0500</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00426</guid>
                    </item>
                <item>
                        <title>Setting-up My First Form</title>
                                    <link>http://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 -0500</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00144</guid>
                    </item>
                <item>
                        <title>How to get started?</title>
                                    <link>http://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 -0500</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00113</guid>
                    </item>
                <item>
                        <title>Configuration of an Existing Form</title>
                                    <link>http://www.web-site-scripts.com/knowledge-base/article/AA-00145</link>
                                    <description><![CDATA[<ol>
  <li><a target="" href="#Introduction">Introduction</a></li>
  <li><a target="" href="#1st%20Step">The Initial Configuration Script</a></li>
  <li><a target="" href="#2nd%20Step">Editing Pages</a></li>
  <li><a target="" href="#3rd%20Step">Configuring - Thank You page</a></li>
  <li><a target="" href="#4th%20Step">Preparing Templates</a></li>
  <li><a target="" href="#5th%20Step">Configuring config.php</a><br>
  </li>
</ol>
<h2><a class=" jsgui-wysiwyg-anchor" name="Introduction"></a>Introduction</h2>
<p>Here, we'll guide you through the process of configuring an existing form with Form Processor Pro. After completing this sample, you'll be able to configure any form in just 5 minutes or less!</p>
<p>To configure 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. </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><br>
<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 class=" jsgui-wysiwyg-anchor" name="1st Step"></a>The 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 class=" jsgui-wysiwyg-anchor" name="2nd Step"></a>Editing Pages</h2>
<p>We put the &lt;!-- FPP_ERROR --&gt; tag in the form's HTML in a place where we'd like to display error messages.</p>
<p>Now we need to point our form to be processed with Form Processor Pro. 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 a relative (recommended) or an absolute path. 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">
<p>&lt;form name="form1" method="post" action="http://www.mydomain.com/fpp/index.php" enctype="multipart/form-data"&gt;</p></div></div><p>If you use the relative path in the action parameter and do not use the "Base href" tag, every page after first one must have the&nbsp; 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 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”. You need to name your form only on the first page.</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>
<p>Corrected HTML Code:</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;<br>&lt;input name="fpp_form" type="hidden" value="contact_form"&gt;</div></div>

<div class="info">
<div class="infoHeader">Note:</div>
<div class="infoContent">
Please, specify absolute paths in all links, images, the path for 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 HTML tag &lt;BASE&gt; (recommended) to specify a base URL, you need to put the &lt;BASE&gt; tag just after the &lt;HEAD&gt; tag:

<div class="preformatted">
<div class="preformattedContent">&lt;head&gt;<br>&lt;base href="URL_TO_PAGE"&gt;</div></div></div></div>
<p>If you have more than one form page, repeat this step for every page.&nbsp;</p>
<h2><a class=" jsgui-wysiwyg-anchor" name="3rd Step"></a>Configuring - 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. So, on the Thank You page we want to put something like this:</p>
<p>Dear (here we would like to put user's name),</p>
<p>Thank you for your interest in our company. We will reply as soon as possible!</p>
<p>An email has been sent to (here we would like to put user's email).</p>
<div class="source"><div class="sourceHeader" align="center">
Initial HTML code for the Thank You Page:
</div>
<div class="sourceContent">
&lt;html&gt;<br>
&lt;head&gt;<br>
&lt;title&gt;My Contact Form - Thank you!&lt;/title&gt;
&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 the name 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, 240, 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, 240, 0);">{#email#}</span>.&lt;/p&gt;<br>
&lt;/body&gt;<br>
&lt;/html&gt;
</div></div>
<h2><a class=" jsgui-wysiwyg-anchor" name="4th Step"></a>Preparing Templates</h2>
<p>Email templates are simply text files with specially formatted content. Generally, email has the following required headers (rows in template): To, From, Subject and Message Body. However, other headers like BCC, Attachments etc. are also possible. Please refer to the Email Sending Action 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. <br>
</p>
<p>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>Subject: {#subject#}<br>Comments:<br>{#comment#}</div></div>
<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>
<h2><a class=" jsgui-wysiwyg-anchor" name="5th Step"></a>Configuring config.php</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>
<p><b>Adding a new form to the config.php file</b></p>
<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:i 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” action  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>
<div class="preformatted">
<div class="preformattedContent">required_fields = name (Full Name), email (Contact Email), subject (Subject)</div></div>
<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 <a target="" href="ARTICLE_URL#127##AA-00166#">Field Validations</a> 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 <a target="" href="ARTICLE_URL#111##AA-00150#">Actions</a> 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 form!</p>]]></description>
                                    <pubDate>Sat, 06 Jun 2009 11:00:00 -0500</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00145</guid>
                    </item>
                <item>
                        <title>KnowledegeBase Manager Pro Video Tour</title>
                                    <link>http://www.web-site-scripts.com/knowledge-base/article/AA-00287</link>
                                    <description><![CDATA[<p><a href="#" onclick="window.open('http://web-site-scripts.com/knowledge-base/pages/kmp-tour.html', 'videotour', 'scrollbars=0,resizable=0,width=870,height=570');return false;"><img style="border-width: 1px; margin: 0px;" title="Take the KnowledgeBase Manager Pro Video Tour" alt="Take the KnowledgeBase Manager Pro Video Tour" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/video-tours/kmp-tour.gif" align="" border="1" height="265" hspace="0" vspace="0" width="429"></a><br>
<a href="#" onclick="window.open('http://web-site-scripts.com/knowledge-base/pages/kmp-tour.html', 'videotour', 'scrollbars=0,resizable=0,width=870,height=570');return false;"><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/icons/television.png" align="absmiddle" border="0" height="16" hspace="0" vspace="0" width="16">&nbsp;Take the KnowledgeBase Manager Pro Video Tour</a></p>
<p>You will learn how to work with knowledge base <b>articles</b>. Video tour shows how to:</p>
<ol><li>Create and edit articles in back-end.</li><li>Resume editing of auto-saved draft article.</li><li>Browse information related to an article.</li><li>Create and edit articles from the front-end part.</li><li>Insert images and attach files to articles.</li><li>Add tables to articles.</li></ol>
<p>You will also learn how to work with article containers - <b>categories</b>. Video shows how to:</p>
<ol><li>Create and edit categories from admin part and front-end.</li><li>Edit category attributes from sidebar.</li><li>Quickly rename a category with double click.</li><li>Sort categories in desired order with drag-n-drop.</li><li>Delete several categories at once.</li><li>Switch between categories in "Articles &amp; Categories" management module.</li><li>View articles from several categories at once.</li><li>Hide sidebar to get more space for article list in admin part.</li></ol>
<p>Video tour teaches how to work with articles <b>version history</b>. You will learn ho to:</p>
<ol><li>Locate version history of an article.</li><li>Compare article versions side-by-side.</li><li>Restore previous article version from the history.</li></ol>
<p>Frontend Styling &amp; Settings chapter shows how to <b>customize knowledge base look &amp; feel in several clicks</b>. You will learn how to:</p>
<ol><li>Change front-end logo and theme.</li><li>Enable/disable front-end modules.</li><li>Change settings of Home, Category, Article and other front-end layouts.</li></ol>
<p>Template Management enables <b>customization of front-end design without limits</b>. You have full control over layouts and styles. You will learn how to:</p>
<ol><li>Create new theme.</li><li>Edit newly created theme and preview results.</li><li>Apply new theme to the front-end of your knowledgebase.</li></ol>
<p>For further depth, you might be interested to read <a target="" href="ARTICLE_URL#244##AA-00283#">Customization and Styling tutorial</a>.</p>
<p>Next chapter show how <b>Active Response</b> works. This function helps to eliminate support requests repeat.<br>Active response provides answers according to Subject and Question fields input by the user in "Ask a Question" form or any other as you have it embedded into your own form. It's a simple but efficient way to reduce repeat customer requests.</p>
<h3>Managing Knowledge Base Has Never Been So Easy and Fast!<br></h3>]]></description>
                                    <pubDate>Wed, 24 Jun 2009 14:00:00 -0500</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00287</guid>
                    </item>
                <item>
                        <title>Installation of native URL Rewriting module (URL Rewrite) for IIS7</title>
                                    <link>http://www.web-site-scripts.com/knowledge-base/article/AA-00470</link>
                                    <description><![CDATA[<p>This guide describes how to enable URL rewriting feature on IIS7 server (if you need this feature on IIS6, follow the <a href="ARTICLE_URL#422##AA-00461#" target="">Installation of URL Rewriting module (IIRF) for IIS6/IIS7</a> guide)</p>
<div><div class="attention">
<div class="attentionHeader">Warning<br></div>
<div class="attentionContent">
<p>If you're using <b>Helicon ISAPI Rewrite</b>, you do not need to install any other URL rewrite software. KMP works with this module from the box.</p><p>If you're already using<b> IIRF (Ionic ISAPI Rewrite)</b>, you can just add necessary configuration&nbsp;according&nbsp;to the guide for IIS6 (it also works for IIS7).</p><p>
If you're already using some other <b>URL Rewrite tool</b>, we strongly recommend to&nbsp;completely uninstall it, because it may interfere with native URL Rewriting module for IIS7 and it is most likely that URL rewriting will not work correctly, and KMP may be inaccessible even if you follow the instructions in this article carefully.</p>
</div>
</div>
</div>
<ol><li>Download and install <a href="http://www.iis.net/expand/URLRewrite" target="">URLRewrite</a>&nbsp;version 1.1 or 2. Installation is fast and simple.</li><li>Open the IIS manager and check that URL Rewrite is installed.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00470/url-rewrite-installed.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="502" hspace="0" vspace="0" width="746"><br><br></li><li>Edit the web.config file and add four rewrite rules for KMP to the <b>&lt;system.webServer&gt;</b> section.&nbsp;<br><br><div class="source">
<div class="sourceHeader" align="center">Rewrite Rules for web.config<br></div>
<div class="sourceContent">
<p>
&nbsp;&lt;rewrite&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;rules&gt;<br>
&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;clear /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;rule name="Rule 1" stopProcessing="true"&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;match url="^<span style="background-color: rgb(255, 255, 0);">kmp</span>/hosts/hosted/(.*)$" ignoreCase="false" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;conditions logicalGrouping="MatchAll"&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/conditions&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;action type="Rewrite" url="/<span style="background-color: rgb(255, 255, 0);">kmp</span>/hosts/hosted/index.php?/{R:1}" appendQueryString="false" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/rule&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;rule name="Rule 2" stopProcessing="true"&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;match url="^<span style="background-color: rgb(255, 255, 0);">kmp</span>/hosts/preview/(.*)$" ignoreCase="false" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;conditions logicalGrouping="MatchAll"&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/conditions&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;action type="Rewrite" url="/<span style="background-color: rgb(255, 255, 0);">kmp</span>/hosts/preview/index.php?/{R:1}" appendQueryString="false" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/rule&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;rule name="Rule 3" stopProcessing="true"&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;match url="^<span style="background-color: rgb(255, 255, 0);">kmp</span>/admin/(.*)$" ignoreCase="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;conditions logicalGrouping="MatchAll"&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/conditions&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;action type="Rewrite" url="/<span style="background-color: rgb(255, 255, 0);">kmp</span>/admin/index.php?/{R:1}" appendQueryString="false" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/rule&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;rule name="Rule 4" stopProcessing="true"&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;match url="^<span style="background-color: rgb(255, 255, 0);">kmp</span>/(.*)$" ignoreCase="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;conditions logicalGrouping="MatchAll"&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/conditions&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;action type="Rewrite" url="/<span style="background-color: rgb(255, 255, 0);">kmp</span>/index.php?/{R:1}" appendQueryString="false" /&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/rule&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/rules&gt;<br>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;/rewrite&gt;<br></p>
</div>
</div>
<p><br></p>
<div class="info">
<div class="infoHeader">Check Path to KMP</div>
<div class="infoContent">
<p>Please note that the example above works for KMP installed to the "kmp" folder under the web root. If you have installed KMP to another folder, you need to change the highlighted values accordingly (there are 8 of them).</p>
</div></div></li><li>You can download an example of web.config file with the aforementioned rewrite rules in the Attachments section below.</li><li>Open the URL rewrite tool from your website page in IIS Manager and check that all rules have been added successfully.<br><br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00470/url-rewrite-rules.png" alt="" title="" style="margin: 0px; border-width: 0px;" align="" border="0" height="310" hspace="0" vspace="0" width="858"><br><br></li><li>Go to Styling and Front-end Settings to switch URL Rewriting ON and save the new settings:<br><img src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2/AA-00470/rewrite-on.PNG" alt="" title="" width="667" height="89" border="0" hspace="0" vspace="0" align="" style="margin-right: 0px; margin-left: 0px; margin-bottom: 0px; margin-top: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; "><br></li><li>Open a front-end page in your browser to check if URL Rewrite works correctly now.</li></ol>
<p></p>]]></description>
                                    <pubDate>Thu, 11 Feb 2010 01:17:03 -0600</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00470</guid>
                    </item>
                <item>
                        <title>Setup correct files and folders access permissions efficiently</title>
                                    <link>http://www.web-site-scripts.com/knowledge-base/article/AA-00427</link>
                                    <description><![CDATA[<p>This guide helps you setup correct access permissions for files and folders efficiently</p>
<ul><li><a target="" href="#win-iis">Windows + IIS</a></li><li><a target="" href="#win-apache">Windows + Apache</a></li><li><a target="" href="#unix">Unix/Linux + Apache</a></li><li><a href="#ftp-client" target="">Unix/Linux without shell access (setting permissions with FTP software)</a></li></ul><br>
<h1><a name="win-iis" ></a>Windows + IIS<br></h1>
<p>Applies to Windows XP, 2003, 2008, and Vista with IIS6 or IIS7 installed.</p>
This example has been performed on Windows2003 + IIS6. It works for
other versions of Windows, but appearance of permission configuration
windows may vary.
<h2>During installation<br></h2>
<p>When you're asked to set write permissions during the initial setup, we would recommend to set write and modify permissions to all KMP files. Don't be afraid about security you will remove most of them after installation.<br></p>
<ol><li>Right-click on the folder that contains all KMP files.</li><li>Select "Properties".</li><li>Click on the "Security" tab. If you do not see it, you probably do not have enough rights to change file permissions, so please contact your system administrator.</li><li>When you install IIS, it adds a user to the system which permissions define access level for web applications. By default it is Internet Guest Account (or IUSR_MACHINENAME, you can see that on the screenshot it is IUSR_IIS6 since the IIS6 is the server name). You need to grant Internet Guest Account with modify and write permissions.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/add-general-write-permissions.png" align="" border="0" height="545" hspace="0" vspace="0" width="396"><br><br></li><li>After this you can proceed with the installation of KMP and finish it.<br></li></ol>
<h2><br></h2>

<div class="info">
<div class="infoHeader">
Windows XP
</div>
<div class="infoContent">
<p>In Windows XP you have simple file sharing enabled by default. You need to disable it in order to change file and folder permissions.<br></p>
<ol><li>Go to <i>My Computer</i>.</li><li>Click on the <i>Tools&gt;Folder Options</i> menu item.</li><li>Select the <i>View</i> tab.</li><li>Under <i>Advanced settings</i>, scroll down to the bottom and uncheck <i>Use simple file sharing (Recommended).</i></li><li>Click <i>Ok</i>.</li></ol>
</div>
</div>

<h2>After installation<br></h2>
<ol><li>Delete the /admin/install/ folder. It is no longer needed and may be a security threat if you'll leave it as it is after installation.</li><li>Open the security properties of the folder that contains all the KMP files once again.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/remove-general-write-permissions.png" align="" border="0" height="545" hspace="0" vspace="0" width="396"><br><br></li><li>Remove modify and write permissions from Internet Guest Account.<br></li><li>Login to the KMP.</li><li>Go to Administration &gt; General Settings &gt; File Permissions.</li><li>You will see that KMP asks you to give it write permissions to several folders.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/add-write-permissions-after-install-iis.png" align="" border="0" height="299" hspace="0" vspace="0" width="714"><br><br></li><li>Open properties of each folder from this list and add write and modify permissions for Internet Guest Account.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/separate-write-permissions.png" align="" border="0" height="473" hspace="0" vspace="0" width="367"><br><br></li><li>Click "Recheck" to be sure that everything is set up correctly.<br></li></ol>
<p><br></p>
<h1><a name="win-apache" ></a>Windows + Apache</h1>
<p>This example has been performed on Windows 7 + Apache. It works for other versions of Windows, but appearance of permission configuration windows may vary.</p>
<p></p>
<h2>During installation</h2>
<p>Apache generally runs on the host computer as the User that it was installed under. So when you launch the installation you will see that KMP has writable access to all files.</p>
<p><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/write-access-to-all.png" align="" border="0" height="510" hspace="0" vspace="0" width="670"><br></p>
<p>So you do not need to do anything about it right now.<br></p>
<h2>
After installation</h2>
<p>After installation you need to remove write access from most KMP files.</p>
<ol><li>Delete the /admin/install/ folder. It is no longer needed and may be a
security threat if you'll leave it as it is after installation.</li><li>Launch the Task Manager (you can use the Ctrl-Shift-Escape combination for that)<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/task-manager.png" align="" border="0" height="188" hspace="0" vspace="0" width="460"><br><br></li><li>You can see that Apache runs under SYSTEM user (this user name may be different on your server). Open the security properties of the folder that contains all the KMP files and click the "Edit" button.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/security-properties-main-folder.png" align="" border="0" height="530" hspace="0" vspace="0" width="412"><br><br></li><li>What you need to do is deny SYSTEM user write access to main KMP folder. This denial will be inherited by all child files and folders. Click on checkbox like shown on the next screenshot and click OK.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/remove-write-permissions-from-main.png" align="" border="0" height="532" hspace="0" vspace="0" width="412"><br><br></li><li>Login to the KMP.</li><li>Go to Administration &gt; General Settings &gt; File Permissions.</li><li>You will see that KMP asks you to give it write permissions to several folders.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/add-write-permissions-after-install-iis.png" align="" border="0" height="299" hspace="0" vspace="0" width="714"><br><br></li><li>Open security properties of a folder from this list, for example "attaches". Click "Advanced" and then "Change Permissions...".<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/advanced-security-settings.png" align="" border="0" height="0" hspace="0" vspace="0" width="0"><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/advanced-security-settings.png" align="" border="0" height="634" hspace="0" vspace="0" width="706"><br><br></li><li>Uncheck the "Include inheritable from this object's parent". You will get a confirmation window.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/inheritable-permissions.png" align="" border="0" height="215" hspace="0" vspace="0" width="454"><br><br></li><li>Click on the "Add" button to copy permissions from parents to this folder.</li><li>Remove the entry that denies write permission for the SYSTEM group.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/remove-deny-write.png" align="" border="0" height="204" hspace="0" vspace="0" width="592"><br><br></li><li>Click OK in each dialogue window.<br></li><li>Perform 8-12 steps for each folder listed here:<br>
<div class="preformatted">
<div class="preformattedContent">
admin/attaches/<br>admin/media_store/<br>admin/systembackups/<br>admin/tmp/<br>admin/update_pool/<br>hosts/hosted/<br>
</div>
</div>

</li>

<li>After that you can go&nbsp;&nbsp;to Administration &gt; General Settings &gt; File Permissions and see that you need to <b>remove</b> write permissions from the <b>hosts/hosted/.htaccess</b> file. Remove them and click "Recheck" in KMP control panel, you will see that all permissions are set correctly.<br><br><img style="border-width: 0px; margin: 0px;" title="" alt="" src="http://www.web-site-scripts.com/knowledge-base/admin/media_store/2//Shared/KMP/Installation%20and%20Configuration/File%20Permissions/permissions-are-correct.png" align="" border="0" height="176" hspace="0" vspace="0" width="638"><br></li></ol><br>
<h1><a name="unix" ></a>Linux/UNIX</h1>
<h2>During installation</h2>

<ol><li>Open shell session with the server where you've uploaded KMP.</li><li>Go to the folder that contains all KMP files.</li><li>Run the following command to grant KMP with write permissions to all necessary files.<br>


<div class="preformatted">

<div class="preformattedContent">
chmod -R 777 admin/attaches admin/media_store admin/systembackups admin/tmp admin/update_pool hosts/hosted <br>chmod 666 admin/config.inc.php index.php .htaccess admin/.htaccess hosts/hosted/.htaccess hosts/preview/.htaccess&nbsp;sitemap.xml sitemap.xml.gz</div>
</div>

</li></ol>
<h2>After installation</h2>
<ol><li>After installation you can remove some write permissions that are not needed anymore:&nbsp;<br>
<div class="preformatted">
<div class="preformattedContent">
chmod 644 admin/config.inc.php index.php .htaccess admin/.htaccess hosts/hosted/.htaccess hosts/preview/.htaccess
</div>
</div>
</li><li>Delete also the /admin/install folder.</li></ol>
<div class="info">
<div class="infoHeader">chmod 777 or chmod 755
</div>
<div class="infoContent">
<p>Note that chmod 777 is not a must, you can use chmod 755, but first you need to run chown command to make Apache the owner of those files.<br>
Go to the folder with all KMP files and run the following command.</p>
<div class="preformatted">
<div class="preformattedContent">
chown -R www-data:www-data ./
</div>
</div>
<p>Usually Apache runs as www-data user, but it may be different on your server.<br></p>
</div>
</div><h1><a name="ftp-client" ></a>Unix/Linux without shell access (setting permissions with FTP software)</h1><p>If you're setting permissions using your FTP software, note that most FTP clients allow setting permissions in a file properties window, which can be opened by right click on the file and choosing "Properties" or "Settings" item in pop-up menu. FTP clients usually use the same file permissions scheme as Linux/UNIX shell does.</p><h2>During installation</h2><p></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 17px; margin-left: 0px; font-size: 12px; line-height: 1.4em; ">Folders that require write permissions (chmod 755 or chmod 777):</p><ul style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 40px; margin-top: 0px; margin-right: 0px; margin-bottom: 17px; margin-left: 0px; font-size: 12px; list-style-position: outside; line-height: 1.6em; "><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/admin/attaches</li><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/admin/media_store</li><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/admin/systembackups</li><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/admin/tmp</li><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/admin/update_pool</li><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/hosts/hosted</li></ul><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 17px; margin-left: 0px; font-size: 12px; line-height: 1.4em; ">Files that require write permissions (chmod 644 or chmod 666):</p><ul style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 40px; margin-top: 0px; margin-right: 0px; margin-bottom: 17px; margin-left: 0px; font-size: 12px; list-style-position: outside; line-height: 1.6em; "><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/admin/config.inc.php</li><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/index.php</li></ul><p></p><h2>After installation</h2><p>Remove write access for the following files (chmod 444):</p><p></p><ul style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 40px; margin-top: 0px; margin-right: 0px; margin-bottom: 17px; margin-left: 0px; font-size: 12px; list-style-position: outside; line-height: 1.6em; "><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/admin/config.inc.php</li><li style="padding-top: 1px; padding-right: 0px; padding-bottom: 1px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size: 12px; list-style-type: disc; list-style-position: initial; list-style-image: initial; line-height: inherit; ">/index.php</li></ul><p></p>]]></description>
                                    <pubDate>Tue, 29 Sep 2009 14:00:00 -0500</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00427</guid>
                    </item>
                <item>
                        <title>Upgrading My Existing Form from FPP v4 to FPP v5</title>
                                    <link>http://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 -0500</pubDate>
                                    <guid>http://www.web-site-scripts.com/knowledge-base/article/AA-00146</guid>
                    </item>
                
    </channel>
</rss>
