在coldfusion中的会话中存储表单中的表单值

时间:2012-01-23 23:58:17

标签: forms session coldfusion

我在会话中尝试捕获这些表单值:

prop_zip
prop_st
address
city
fname
lname
email
pri_phone_1
pri_phone_2
pri_phone_3

这是我的会话代码:

<cfapplication name="qsErrorVals" clientmanagement="yes" sessionmanagement="yes" sessiontimeout="#createTimeSpan(0,0,360,0)#">
<cflock timeout="120" name="#session.sessionID#" type="exclusive">
    <cfset session.prop_st="#prop_st#">
    <cfset session.prop_zip="#prop_zip#">
    <cfset session.address="#address#">
    <cfset session.fname="#fname#">
    <cfset session.lname="#lname#">
    <cfset session.email="#email#">
    <cfset session.pri_phone_1="#pri_phone_1#">
    <cfset session.pri_phone_2="#pri_phone_2#">
    <cfset session.pri_phone_3="#pri_phone_3#">  
</cflock>

到目前为止,我只能从表单中保存两个变量:

prop_zip
prop_st

其余的我在将表单值保存到会话时遇到问题。我在创建会话之前已经定义了要在会话中存储的变量,并且我尝试使用此代码:

<cfset session.email="#form.email#">
etc...

我仍然可以保存我提到的两个变量。我做错了什么?

1 个答案:

答案 0 :(得分:2)

如果不查看所有代码,很难专门回答,但希望这个例子能有所帮助。

  • cfapplication标记应该放在Application.cfm或Application.cfc文件中。
  • 会话代码最有可能放在另一个文件中。
  • 我建议在scope代码中指定session cflock属性。

Application.cfm文件:

<cfapplication name="qsErrorVals" clientmanagement="yes" sessionmanagement="yes" sessiontimeout="#createTimeSpan(0,0,360,0)#">

ErrorVals.cfm或您要调用文件的任何内容:

<cfparam name="form.prop_st" default="NY" > <!--- I've added default data for testing --->
<cfparam name="form.prop_zip" default="12345" >
<cfparam name="form.address" default="1st Main St." >
<cfparam name="form.fname" default="John" >
<cfparam name="form.lname" default="Doe" >
<cfparam name="form.email" default="me@domain.com" >
<cfparam name="form.pri_phone_1" default="123-123-1234" >
<cfparam name="form.pri_phone_2" default="123-123-1234" >
<cfparam name="form.pri_phone_3" default="123-123-1234" >
<cfscript>
    prop_st = trim(form.prop_st); // validate, trim, etc.
    prop_zip = trim(form.prop_zip);
    address = trim(form.address );
    fname = trim(form.fname );
    lname = trim(form.lname );
    email = trim(form.email);
    pri_phone_1 = trim(form.pri_phone_1);
    pri_phone_2 = trim(form.pri_phone_2);
    pri_phone_3 = trim(form.pri_phone_3);
</cfscript>

<cflock scope="session" type="exclusive" timeout="10" >
    <cfset session.prop_st = prop_st>
    <cfset session.prop_zip = prop_zip>
    <cfset session.address= address>
    <cfset session.fname= fname>
    <cfset session.lname= lname>
    <cfset session.email= email>
    <cfset session.pri_phone_1= pri_phone_1>
    <cfset session.pri_phone_2= pri_phone_2>
    <cfset session.pri_phone_3= pri_phone_3>  
</cflock>

<cfdump var="#session#">