110 likes | 197 Views
Form Validation-Client and Server. Verifying your visitors form submissions Jon Brundage CF developer/Section 508/web accessibility Jonwind@windcompany.com. Why validate?. Safety protects your database and site Better user experience Makes your site more professional Saves time
E N D
Form Validation-Client and Server • Verifying your visitors form submissions • Jon Brundage • CF developer/Section 508/web accessibility • Jonwind@windcompany.com
Why validate? • Safety • protects your database and site • Better user experience • Makes your site more professional • Saves time • Less submits and page calls
Client Via Scripting Javascript most common May be defeated by disabling JS in browser Poses risks but convenient Saves server load Server Via CGI/ASP etc This discussion focuses on the power of CF Can’t be defeated by changes in browser settings Safer but less convenient Two types of Validation
Client validation • CFFORM • Writes Javascript validation for you • CFINPUT tag • http://www.macromedia.com/support/coldfusion/ts/documents/cfform_hotfix.htm hotfix for CFMX 6.1 • Javascript • Write your own • Many free scripts available on the Web • http://webdeveloper.earthweb.com/webjs/ • http://www.jsmadeeasy.com/ • http://www.js-examples.com/js/ • http://www.dynamicdrive.com/ (DHTML)
Test for state of scripting on client • Inside the FORM tag, add a NOSCRIPT tag with a hidden form field • <noscript> • <input type="hidden" name="scriptOff" value="scriptOff"> • </noscript> • Use Isdefined(form.scriptOff) in action page with a CFIF tag to determine if you need to apply server side validation.
Server validation • CF functions • CF tags • CF custom tags- developers exchange • CF structures and arrays
CF STRUCTURE • Contain variables called keys • Create with a CFSET statement • <cfset formerrors=structnew()> • A structure with elements contained in it will have a count similar to query recordcount • <cfif structcount(formerrors) gt "0">
CF STRUCTURE cont. • Structures may be looped. • <cfloop collection=#formerrors# item="ErrorType"> • <ul class="list"> • <li style="color: ##FF0000;"> • #formErrors[errorType]# • </li> • </ul> • </cfloop>
Using a structure to hold errors • <cfset formerrors=structnew()> • as errors encountered, add to structure • <cfset temp=structinsert(formerrors,"ErroruserFirst","You failed to enter your first name." ,"yes")> • At the end of processing form errors, display by looping over the structure: • <cfloop collection=#formerrors# item="ErrorType"> • <ul class="list"> • <li style="color: ##FF0000;"> • #formErrors[errorType]# • </li> • </ul> • </cfloop>
Make use of CF functions • IsNumeric • Verify numeric fields • Findoneof • Look at characters • And others! • Use you creativity.
THANK YOU • Remember, CF has many tools at your disposal. • Have fun, be creative and don’t worry too much about “being right” • Many ways to solve problems. • Questions/comments- • Jonwind@windcompany.com