Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6320745
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 24, 20262026-05-24T16:01:50+00:00 2026-05-24T16:01:50+00:00

I’m using the validation CFC by Ryan J. Heldt http://validation.riaforge.org/ My form submits to

  • 0

I’m using the validation CFC by Ryan J. Heldt http://validation.riaforge.org/

My form submits to processSignup.cfc

<cfscript>
objValidation = createObject("component","cfcs.validation").init();
objValidation.setFields(form);
objValidation.validate();
</cfscript>

<!--- clear the error/success message --->
<cfset msg="">

<cfif objValidation.getErrorCount() is not 0>
    <cfsavecontent variable="msg">
        <H2>Error in form submission</H2>
        <P>There were <cfoutput>#objValidation.getErrorCount()#</cfoutput> errors in your submission:</P>
        <ul>
        <cfloop collection="#variables.objValidation.getMessages()#" item="rr">
            <li><cfoutput>#variables.objValidation.getMessage(rr)#</cfoutput></li>
        </cfloop>
        </ul>
        <p>Please use the back button on your browser to correct your submission.</p>
    </cfsavecontent>
</cfif>

<cfdump var="#objvalidation#">


<cfoutput>
#msg#
</cfoutput>

Which gives me this output

enter image description here

What I’m trying figure out is the name of the structure and how to to get to “confirm password”, “password”, “username” but I’m being dense and I can’t figure out how to.

<!---
<fusedoc fuse="Validation.cfc" language="ColdFusion" specification="2.0">
    <responsibilities>
        I am a ColdFusion Component that performs server-side form validation.

        Copyright 2006-2008 Ryan J. Heldt. All rights reserved.

        Validation.cfc is licensed under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License. You may obtain
        a copy of the License at:

            http://www.apache.org/licenses/LICENSE-2.0

        Unless required by applicable law or agreed to in writing, software distributed
        under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
        CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
        language governing permissions and limitations under the License.

        If you use this component in a live site, I would love to know where! Please end
        me a quick note at rheldt@ryanheldt.com with the name of the site the URL.
    </responsibilities>

        <property name="version" value="1.00" />
        <property name="copyright" value="Copyright 2006-2008 Ryan J. Heldt." />
    </properties>
</fusedoc>
--->

<cfcomponent displayname="Validation" hint="ColdFusion component that performs server-side form validation." output="false">

    <!--- ---------- Properties ---------- --->

    <cfproperty name="fields" type="struct" />
    <cfproperty name="directories" type="struct" />
    <cfproperty name="files" type="struct" />
    <cfproperty name="errors" type="numeric" />
    <cfproperty name="messages" type="struct" />
    <cfproperty name="mimeTypes" type="array" />

    <!--- ---------- Constructors ---------- --->

    <cffunction name="init" access="public" output="false" returntype="Validation">
        <cfscript>
            _fields = structNew();
            _directories = structNew();
            _files = structNew();
            _uploadedFiles = structNew();
            _errors = 0;
            _messages = structNew();
            _cardTypes = structNew();
            _mimeTypes = arrayNew(1);
        </cfscript>
        <cfreturn this />
    </cffunction>

    <!--- ---------- Accessors and Mutators ---------- --->

    <cffunction name="getFields" access="public" output="false" returntype="struct">
        <cfreturn _fields />
    </cffunction>

    <cffunction name="setFields" access="public" output="false" returntype="void">
        <cfargument name="fields" type="struct" required="true" />
        <cfset _fields = arguments.fields />
        <cfreturn />
    </cffunction>

    <cffunction name="getDirectories" access="public" output="false" returntype="struct">
        <cfreturn _directories />
    </cffunction>

    <cffunction name="setDirectories" access="public" output="false" returntype="void">
        <cfargument name="directories" type="struct" required="true" />
        <cfset _directories = arguments.directories />
        <cfreturn />
    </cffunction>

    <cffunction name="getFiles" access="public" output="false" returntype="struct">
        <cfreturn _files />
    </cffunction>

    <cffunction name="getErrorCount" access="public" output="false" returntype="numeric">
        <cfreturn _errors />
    </cffunction>

    <cffunction name="getMessages" access="public" output="false" returntype="struct">
        <cfreturn _messages />
    </cffunction>

    <cffunction name="getMessage" access="public" output="false" returntype="string">
        <cfargument name="field" type="string" required="true" />
        <cfif structKeyExists(_messages,field)>
            <cfreturn _messages[field] />
        <cfelse>
            <cfreturn "" />
        </cfif>
    </cffunction>

    <cffunction name="getCardType" access="public" output="false" returntype="string">
        <cfargument name="field" type="string" required="true" />
        <cfif structKeyExists(_cardTypes,field)>
            <cfreturn _cardTypes[field] />
        <cfelse>
            <cfreturn "" />
        </cfif>
    </cffunction>

    <cffunction name="getMimeTypes" access="public" output="false" returntype="array">
        <cfreturn _mimeTypes />
    </cffunction>

    <!--- ---------- Public Methods ---------- --->

    <cffunction name="validate" access="public" output="true" returntype="void">
        <cfset var rr = 0 />
        <cfloop list="#structKeyList(_fields)#" index="rr">
            <cfif lCase(left(rr,9)) is "validate_">
                <cfswitch expression="#lCase(rr)#">
                    <cfcase value="validate_require">
                        <!--- Required Fields --->
                        <cfset validateRequired(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_integer">
                        <!--- Validate Integers --->
                        <cfset validateInteger(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_numeric">
                        <!--- Validate Numeric --->
                        <cfset validateNumeric(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_email">
                        <!--- Validate E-mail Addresses --->
                        <cfset validateEmail(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_url">
                        <!--- Validate URLs --->
                        <cfset validateURL(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_ip">
                        <!--- Validate IP Addresses --->
                        <cfset validateIP(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_ssn">
                        <!--- Validate Socical Security Number (United States) nnn-nn-nnnn --->
                        <cfset validateSSN(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_postal">
                        <!--- Validate Postal Code (United States and Canada) nnnnn or nnnnn-nnnn or ana-nan --->
                        <cfset validatePostal(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_dateus">
                        <!--- Validate Date (United States) mm/dd/yyyy --->
                        <cfset validateDateUS(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_dateeu">
                        <!--- Validate Date (Europe) dd/mm/yyyy --->
                        <cfset validateDateEU(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_time">
                        <!--- Validate Time hh:mm:ss tt --->
                        <cfset validateDateEU(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_phoneus">
                        <!--- Validate Phone Number (United States) nnn-nnn-nnnn --->
                        <cfset validatePhoneUS(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_currencyus">
                        <!--- Validate Currency (United States) Allows optional "$", optional "-" or "()" but not both, optional cents, and optional commas separating thousands --->
                        <cfset validateCurrencyUS(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_creditcard">
                        <!--- Validate Credit Card using Luhn Algorithm --->
                        <cfset validateCreditCard(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_password">
                        <!--- Validate two fields to make sure they match. Comparison is case-sensitive --->
                        <cfset validatePassword(_fields[rr]) />
                    </cfcase>
                    <cfcase value="validate_file">
                        <!--- Upload files and validate their MIME types --->
                        <cfset loadMimeTypes() />
                        <cfset validateFile(_fields[rr]) />
                    </cfcase>
                </cfswitch>
            </cfif>
        </cfloop>
        <cfif val(_errors)>
            <!--- If there were any validation errors, delete all the upload files --->
            <cfset cleanupFiles() />
        </cfif>
        <cfreturn />
    </cffunction>

    <!--- ---------- Package Methods ---------- --->

    <cffunction name="validateRequired" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif not (isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]))>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateInteger" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not reFind("^-?\d+$",_fields[listGetAt(rr,1,"|")])>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateNumeric" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not isNumeric(_fields[listGetAt(rr,1,"|")])>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateEmail" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not reFind("^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$",_fields[listGetAt(rr,1,"|")])>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateURL" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not reFind("https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?",_fields[listGetAt(rr,1,"|")])>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateIP" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not reFind("\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b",_fields[listGetAt(rr,1,"|")])>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateSSN" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not reFind("^\d{3}-\d{2}-\d{4}$",_fields[listGetAt(rr,1,"|")])>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validatePostal" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not reFind("^((\d{5}-\d{4})|(\d{5})|([A-Z]\d[A-Z]\s\d[A-Z]\d))$",_fields[listGetAt(rr,1,"|")])>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateDateUS" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not (reFind("(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d",_fields[listGetAt(rr,1,"|")]) and isDate(_fields[listGetAt(rr,1,"|")]))>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateDateEU" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not (reFind("(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d",_fields[listGetAt(rr,1,"|")]) and isDate(_fields[listGetAt(rr,1,"|")]))>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateTime" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not (reFind("^((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))$|^([01]\d|2[0-3])",uCase(_fields[listGetAt(rr,1,"|")])) and isDate(_fields[listGetAt(rr,1,"|")]))>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validatePhoneUS" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not reFind("^[2-9]\d{2}-\d{3}-\d{4}$",_fields[listGetAt(rr,1,"|")])>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateCurrencyUS" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and len(_fields[listGetAt(rr,1,"|")]) and not reFind("^\$?\-?([1-9]{1}[0-9]{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))$|^\-?\$?([1-9]{1}\d{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))$|^\(\$?([1-9]{1}\d{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))\)$",_fields[listGetAt(rr,1,"|")])>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateCreditCard" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
            <!--- Based on isCreditCard() by Nick de Voil (cflib.org/udf.cfm?id=49) --->
            <cfset var strCardNumber = "" />
            <cfset var strProcessedNumber = "" />
            <cfset var intCalculatedNumber = 0 />
            <cfset var isValid = false />
            <cfset var rr = 0 />
            <cfset var i = 0 />
            <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
                <cfscript>
                    // Take out spaces and dashes. Flip card number around for processing
                    strCardNumber = replace(_fields[listGetAt(rr,1,"|")]," ","","all");
                    strCardNumber = replace(strCardNumber,"-","","all");
                    strCardNumber = reverse(strCardNumber);
                    _cardTypes[listGetAt(rr,1,"|")] = "Unknown";

                    // Double every other digit
                    if (isNumeric(strCardNumber) and len(strCardNumber) gt 12) {
                        for(i = 1; i lte len(strCardNumber); i = i + 1) {
                            if(i mod 2 is 0) {
                                strProcessedNumber = strProcessedNumber & mid(strCardNumber,i,1) * 2;
                            } else {
                                strProcessedNumber = strProcessedNumber & mid(strCardNumber,i,1);
                            }
                        }

                        // Sum processed digits
                        for(i = 1; i lte len(strProcessedNumber); i = i + 1) {
                            intCalculatedNumber = intCalculatedNumber + val(mid(strProcessedNumber,i,1));
                        }

                        // See if calculated number passed mod 10 test and attempt to determine card type
                        if(intCalculatedNumber neq 0 and intCalculatedNumber mod 10 is 0) {
                            isValid = true;
                            strCardNumber = reverse(strCardNumber);
                            if ((len(strCardNumber) eq 15) and (((left(strCardNumber,2) is "34")) or ((left(strCardNumber,2) is "37")))) {
                                _cardTypes[listGetAt(rr,1,"|")] = "Amex";
                            }
                            if ((len(strCardNumber) eq 14) and (((left(strCardNumber,3) gte 300) and (left(strCardNumber,3) lte 305)) or (left(strCardNumber,2) is "36") or (left(strCardNumber, 2) is "38"))){
                                _cardTypes[listGetAt(rr,1,"|")] = "Diners";
                            }
                            if ((len(strCardNumber) eq 16) and (left(strCardNumber,4) is "6011")) {
                                _cardTypes[listGetAt(rr,1,"|")] = "Discover";
                            }
                            if ((len(strCardNumber) eq 16) and (left(strCardNumber,2) gte 51) and (left(strCardNumber,2) lte 55)) {
                                _cardTypes[listGetAt(rr,1,"|")] = "MasterCard";
                            }
                            if (((len(strCardNumber) eq 13) or (len(strCardNumber) eq 16)) and (Left(strCardNumber,1) is "4")) {
                                _cardTypes[listGetAt(rr,1,"|")] = "Visa";
                            }
                        }
                    }

                    // Not a valid card number
                    if (not isValid) {
                        registerError(listGetAt(rr,1,"|"),listGetAt(rr,2,"|"));
                    }
                </cfscript>
            </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validatePassword" returntype="void" access="private" output="false">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cfif isDefined("#listGetAt(rr,1,"|")#") and isDefined("#listGetAt(rr,2,"|")#") and compare(_fields[listGetAt(rr,1,"|")],_fields[listGetAt(rr,2,"|")]) neq 0>
                <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,3,"|")) />
            </cfif>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="validateFile" returntype="void" access="private" output="true">
        <cfargument name="parameters" type="string" required="true" />
        <cfset var rr = 0 />
        <cfset var strCurrentMimeType = "" />
        <cfset var strCurrentFileExt = "" />
        <cfset var aryValidFileExts = arrayNew(1) />
        <cfset var strFilename = "" />
        <cfset var blnValidFile = false />

        <cfloop index="rr" list="#arguments.parameters#" delimiters=";">
            <cftry>
                <!--- Perform the upload --->
                <cfif structKeyExists(_directories,"#listGetAt(rr,1,"|")#")>
                    <cfif len(evaluate("#listGetAt(rr,1,"|")#"))>
                        <cffile action="upload" filefield="#listGetAt(rr,1,"|")#" destination="#_directories[listGetAt(rr,1,"|")]#" nameconflict="makeunique" />
                        <cfset strCurrentMimeType = "#cffile.contentType#/#cffile.contentSubType#" />
                        <cfset strCurrentFileExt = "" />
                        <cfset aryValidFileExts = arrayNew(1) />
                        <cfset blnValidFile = false />

                        <!--- Determine file ext from MIME type --->
                        <cfloop from="1" to="#arrayLen(_mimeTypes)#" index="i">
                            <cfparam name="_mimeTypes[i]" default="0,0" />
                            <cfif listGetAt(_mimeTypes[i],2) is strCurrentMimeType>
                                <cfset strCurrentFileExt = "." & listGetAt(_mimeTypes[i],1) />
                            </cfif>
                        </cfloop>

                        <!--- Look what the server returned if unable to determine from MIME type --->
                        <cfif not len(strCurrentFileExt)>
                            <cfset strCurrentFileExt = "." & cffile.serverFileExt />
                        </cfif>

                        <!--- Rename the file and register in case we have to clean house--->
                        <cfset strFilename = "#generateFilename(cffile.clientFilename)##strCurrentFileExt#" />
                        <cffile action="rename" source="#cffile.serverDirectory#/#cffile.serverFile#" destination="#strFilename#" />
                        <cfset structInsert(_files,listGetAt(rr,1,"|"),strFilename)>
                        <cfset structInsert(_uploadedFiles,listGetAt(rr,1,"|"),#cffile.serverDirectory#&"/"&strFilename)>

                        <!--- Validate file type --->
                        <cfif listGetAt(rr,2,"|") neq "*">
                            <cfset aryValidFileExts = listToArray(listGetAt(rr,2,"|")) />
                            <cfloop from="1" to="#arrayLen(aryValidFileExts)#" index="i">
                                <cfif replaceNoCase(strCurrentFileExt,".","","all") is aryValidFileExts[i]>
                                    <cfset blnValidFile = true />
                                </cfif>
                            </cfloop>
                        </cfif>

                        <cfif not blnValidFile>
                            <cfset registerError(listGetAt(rr,1,"|"),listGetAt(rr,3,"|")) />
                        </cfif>
                    </cfif>
                <cfelse>
                    <!--- Developer didn't tell us the upload directory --->
                    <cfset registerError(listGetAt(rr,1,"|"),"There was no upload directory specified.") />
                </cfif>

                <cfcatch>
                    <cfset registerError(listGetAt(rr,1,"|"),"There was as problem uploading a file. Please contact the web site administrator. [#cfcatch.message# #cfcatch.detail#]") />
                </cfcatch>
            </cftry>
        </cfloop>
        <cfreturn />
    </cffunction>

    <cffunction name="registerError" returntype="void" access="private" output="false">
        <cfargument name="field" type="string" required="true" />
        <cfargument name="message" type="string" required="true" />
        <cfset _errors = _errors + 1 />
        <cfset _messages[field] = message />
        <cfreturn />
    </cffunction>

    <cffunction name="generateFilename" returntype="string" access="private" output="false">
        <cfargument name="originalFilename" type="string" required="true" />
        <cfset var rr = 0 />
        <cfset var strReturn="" />
        <cfset var intCurrentCharacter=0 />
        <cfset arguments.originalFilename=trim(lCase(arguments.originalFilename)) />
        <cfloop index="rr" from="1" to="#len(arguments.originalFilename)#">
            <cfset intCurrentCharacter=asc(mid(arguments.originalFilename,rr,1)) />
            <cfif intCurrentCharacter is 32>
                <!--- Space --->
                <cfset strReturn=strReturn&"_" />
            <cfelseif intCurrentCharacter gte 48 and intCurrentCharacter lte 57>
                <!--- Numbers 0-9 --->
                <cfset strReturn=strReturn&chr(intCurrentCharacter) />
            <cfelseif (intCurrentCharacter gte 97 and intCurrentCharacter lte 122)>
                <!--- Letters a-z --->
                <cfset strReturn=strReturn&chr(intCurrentCharacter) />
            <cfelse>
                <!--- Skip Everything Else--->
            </cfif>
        </cfloop>
        <cfif len(strReturn)>
            <cfset strReturn = lCase(left(strReturn,35)) & "_" />
        <cfelse>
            <cfset strReturn = "untitled_" />
        </cfif>
        <cfreturn strReturn & dateFormat(now(),"yyyymmdd") & timeFormat(now(),"HHmmss") />
    </cffunction>

    <cffunction name="cleanupFiles" returntype="void" access="private" output="false">
        <cfset var rr = "" />
        <cfloop collection="#_uploadedFiles#" item="rr">
            <cfif fileExists(structFind(_uploadedFiles,rr))>
                <cffile action="delete" file="#structFind(_uploadedFiles,rr)#" />
            </cfif>
        </cfloop>
    </cffunction>

    <cffunction name="loadMimeTypes" returntype="void" access="private" output="false">
        <cfscript>
            // Microsoft Office Formats (Office 2003 and Prior)
            _mimeTypes[1]="doc,application/msword";
            _mimeTypes[2]="doc,application/vnd.ms-word";
            _mimeTypes[3]="mdb,application/msaccess";
            _mimeTypes[4]="mdb,application/vnd.ms-access";
            _mimeTypes[5]="mpp,application/msproject";
            _mimeTypes[6]="mpp,application/vnd.ms-project";
            _mimeTypes[7]="one,application/msonenote";
            _mimeTypes[8]="one,application/vnd.ms-onenote";
            _mimeTypes[9]="ppt,application/mspowerpoint";
            _mimeTypes[10]="ppt,application/vnd.ms-powerpoint";
            _mimeTypes[11]="pub,application/mspublisher";
            _mimeTypes[12]="pub,application/vnd.ms-publisher";
            _mimeTypes[13]="xls,application/msexcel";
            _mimeTypes[14]="xls,application/vnd.ms-excel";

            // Microsoft Office Formats (Office 2007)
            _mimeTypes[15]="docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document";
            _mimeTypes[16]="pptx,application/vnd.openxmlformats-officedocument.presentationml.presentation";
            _mimeTypes[17]="xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

            // Other Document Formats
            _mimeTypes[18]="csv,text/csv";
            _mimeTypes[19]="csv,text/comma-seperated-values";
            _mimeTypes[20]="htm,text/html";
            _mimeTypes[21]="pdf,application/pdf";
            _mimeTypes[22]="rtf,application/rtf";
            _mimeTypes[23]="rtf,text/rtf";
            _mimeTypes[24]="txt,text/plain";
            _mimeTypes[25]="xml,text/xml";

            // Bitmap Image Formats
            _mimeTypes[26]="bmp,image/bmp";
            _mimeTypes[27]="gif,image/gif";
            _mimeTypes[28]="jpg,image/jpeg";
            _mimeTypes[29]="jpg,image/pjpeg";
            _mimeTypes[30]="png,image/png";
            _mimeTypes[31]="png,image/x-png";
            _mimeTypes[32]="tif,image/tiff";

            // Vector Image Formats
            _mimeTypes[33]="ai,application/postscript";
            _mimeTypes[34]="swf,application/x-shockwave-flash";
            _mimeTypes[35]="svg,image/svg+xml";

            // Video Formats
            _mimeTypes[36]="avi,video/x-msvideo";
            _mimeTypes[37]="mov,video/quicktime";
            _mimeTypes[38]="mpg,video/mpeg";
            _mimeTypes[39]="wmv,video/x-ms-wmv";

            // Audio Formats
            _mimeTypes[40]="au,audio/basic";
            _mimeTypes[41]="mid,audio/midi";
            _mimeTypes[42]="mp3,audio/mpeg";
            _mimeTypes[43]="ogg,application/ogg";
            _mimeTypes[44]="wav,audio/x-wav";

            // Other Formats
            _mimeTypes[45]="zip,application/zip";
        </cfscript>
        <cfreturn />
    </cffunction>

</cfcomponent>
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-24T16:01:51+00:00Added an answer on May 24, 2026 at 4:01 pm

    I’d think that since <cfdump var="#objvalidation#"> shows you the struct, you’d reference it via objValidation, no?

    objValidation.messages should then show you the struct of the messages. Because “Confirm password” is a key with a space in it, you’ll need to use array notation to reference it.

    So…

    #objValidation.messages[ 'Confirm password' ]#
    #objValidation.messages[ 'password' ]#
    #objValidation.messages[ 'username' ]#
    

    …should work. In theory 🙂

    EDIT: disregard the info above. You’re dumping an actual object, not just a struct… so try:

    <cfdump var="#objValidation.getMessages()#" />

    Look at the code for the CFC and you’ll see a getMessage() method which returns a struct. So once you have that, you can get at the individual messages. Since you won’t necessarily know what keys exist in the struct (as I assume it will vary depending on the validation failures), I’d just loop over the struct returned from #objValidation.getMessages()# via a standard struct-based <cfloop>

    EDIT AGAIN:

    <cfloop collection="#objValidation.getMessages()#" item="error">
        #error#: #objValidation.getMessages[ error ]#<br />
    </cfloop>
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm new to using the Perl treebuilder module for HTML parsing and can't figure
That's pretty much it. I'm using Nokogiri to scrape a web page what has
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I'm making a simple page using Google Maps API 3. My first. One marker
We're building an app, our first using Rails 3, and we're having to build
I'm parsing an RSS feed that has an &#8217; in it. SimpleXML turns this
In order to apply a triggered animation to all ToolTip s in my app,
I want use html5's new tag to play a wav file (currently only supported
I want to count how many characters a certain string has in PHP, but
Is it possible to replace javascript w/ HTML if JavaScript is not enabled on

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.