adduser is set to ""...unless i missed it, i do't see it being assigned the
return value of the query.  If you are supposed to be returning the new ID
then you would want <cfreturn qUserEmail>

Eric


On Thu, May 9, 2013 at 10:49 AM, Bruce Sorge <sor...@gmail.com> wrote:

>
> Hey,
> I am doing a project for my CF class in college. I admit that I have not
> played with CFC's in a while, but I cannot figure out why this is not
> working:
>
> <cffunction name="adduser" hint="Adds a new user to the database"
> returntype="query">
>                 <cfargument name="fname" required="true" type="string">
>                 <cfargument name="lname" required="true" type="string">
>                 <cfargument name="username" required="true" type="string">
>                 <cfargument name="userpwd" required="true" type="string">
>                 <cfargument name="email" required="true" type="string">
>
>                 <cfset var adduser = "" />
>                 <!--- Hash the password and create a random number for the
> URL on the email that will be sent --->
>                 <cfset securepwd = #hash(arguments.userpwd)# />
>                 <cfset salt = "#Rand("SHA1PRNG")#" />
>                 <cfset secureHash = hash(salt) />
>
>
>                 <cfquery name="qUserID" result="userid"
> datasource="bhsrecruitadmindsn">
>                         INSERT INTO users
>                         (username, userpwd, fname, lname, email,
> secureHash)
>                         VALUES ('#arguments.username#', '#securepwd#',
> '#arguments.fname#', '#arguments.lname#', '#arguments.email#',
> '#secureHash#')
>                 </cfquery>
>
>                 <!--- Set the auto generated key --->
>                 <cfset newID = #userid.generated_key# />
>                 <!--- Now we get the informatoion from the db --->
>                 <cfquery name="qUserEmail">
>                         SELECT fname, lname, email, secureHash
>                         FROM users
>                         WHERE userid = #newID#
>                 </cfquery>
>
>                 <cfreturn adduser>
>         </cffunction>
>
> The information enters into the db as expected, but when I invoke the
> component on the other end:
>
> <cfinvoke method="adduser" component="cfc/dbfunctions"
> returnvariable="userinfo">
>         <cfinvokeargument name="username" value="#form.username#">
>         <cfinvokeargument name="userpwd" value="#form.userpwd#">
>         <cfinvokeargument name="fname" value="#form.fname#">
>         <cfinvokeargument name="lname" value="#form.lname#">
>         <cfinvokeargument name="email" value="#form.email#">
> </cfinvoke>
>
> I get the error message The value returned from the adduser function is
> not of type query. If the component name is specified as a return type, it
> is possible that either a definition file for the component cannot be found
> or is not accessible. The error occurred on line 16.
>
> Also, I know that there are a few things that could be fixed/tidied up
> regarding hashing and such, but this class is not on encryption or anything
> like that, it's so that the instructor see's that I have a basic
> understanding of CF. The book for the class is CFWAC for version 9, so it's
> beginner level stuff.
>
> Bruce
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:355682
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to