----- Original Message -----
Sent: Friday, October 03, 2003 10:10
AM
Subject: [CFCDev] Just starting CFC's --
Session Question
I am just now starting my learning on CFC's and
having issues with sessions .. it is quite frustrating.
I created a VERY simple little input for building
an array populated with a struct and then sticking it into a
session.
I am not getting any session information from the
calling CFM page .. if I set the session inside of the CFC.
Can anyone see what I am doing
wrong?
If I run cart.cfm?mode=addCart (I see the
session set in the CFC -- cfdump)
AND then Run cart.cfm?mode=viewCart it says
cartData is undefined in SESSION.
<!--- Calling CFM page --->
<cfparam name="url.mode"
default="">
<cfswitch
_expression_="#url.mode#">
<cfcase
value="delCart">
<cfset variables.foo =
StructDelete(session,
"cartData")>
</cfcase>
<cfcase
value="addCart">
<cfparam name="url.qty"
default="1">
<cfparam name="url.id"
default="1">
<!--- <cfobject type="component"
name="addCart" component="test.components.cartModule">
--->
<cfinvoke component="test.components.cartModule"
method="addCart"/>
</cfcase>
<cfcase
value="viewCart">
<cfdump
var="#session.cartData#">
</cfcase>
</cfswitch>
<!--- cartModule.cfc --->
<cfcomponent displayname="cartModule"
hint="manages Items to the Cart">
<cffunction
name="addCart" output="true" displayname="Adds Cart Stuff" hint="Adds Cart
Stuff">
<cfif
IsDefined("session.cartData")>
<cfset cartLen =
ArrayLen(cart) + 1>
<cfset cart[cartLen] =
structNew()>
<cfset cart[cartLen].qty =
url.qty>
<cfset cart[cartLen].id =
url.id>
<cfelse>
<cfset cart =
arrayNew(1)>
<cfset cartLen = ArrayLen(cart) +
1>
<cfset cart[cartLen] =
structNew()>
<cfset cart[cartLen].qty =
url.qty>
<cfset cart[cartLen].id =
url.id>
</cfif>
<cfset
session.cartData = cart>
<cfdump
var="#session.cartData#">
</cffunction>
</cfcomponent>
Also: If I call this component via CFOBJECT the
<CFDUMP in the function doesn't display anything -- If I use <CFINVOKE
it displays the dump.
Thanks
Paul Giesenhagen
QuillDesign