2012-01-23 4 views
0

У меня есть эти значения формы я пытаюсь захватить в сеансе:Сохранение значений формы из формы в сессии в 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... 

Тем не менее, я могу только сохранить две переменные я упоминал. Что я делаю не так?

ответ

2

Трудно ответить конкретно, не глядя на весь ваш код, но, надеюсь, этот пример поможет.

  • Тег cfapplication должен содержать файл Application.cfm или Application.cfc.
  • Код сеанса, скорее всего, будет помещен в другой файл.
  • Я бы рекомендовал указать атрибут scopesession в теге 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="[email protected]" > 
<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#"> 
4

Эх, я обычно беру легкий путь. В дополнение к рекомендациям о cfapplication, scoping и paraming form vars в Micah's answer, я бы скопировал всю структуру формы в сеанс.

session.theForm = structCopy(form); 
Смежные вопросы