Coldfusion中的会话

时间:2013-11-01 21:44:14

标签: session coldfusion

由于我使用的系统具有登录和注销功能,因此当我登录系统时,我在会话中。我是Session的新手,我的问题是我在任何coldfusion页面中定义的任何变量及其值,我能在任何页面上使用它吗?

例如,在浏览我的系统代码时,我遇到了以下第一行:每个CFML页面:

<cfparam name="INPUTID" default="0">

然后在页面的某个地方,我看到这个变量被用作#INPUTId#

请澄清

1 个答案:

答案 0 :(得分:4)

要回答“我在任何coldfusion页面中定义的任何变量及其值,我能否在任何页面上使用它”......这取决于。

如果您设置会话变量,例如<cfset session.foo = "bar" >然后您可以在任何页面上调用#session.foo#,因为它将存储在用户的会话中。

但是,如果您只是设置一个值,例如<cfset foo="bar" >然后它将在“变量”范围内结束,并且仅在该页面或请求中可用。 (在该注释中,CF具有特定的“请求”范围,例如request.foo,用于此目的,可在设置值的位置之后的任何代码中,在同一请求或页面视图中使用)

因此,如果要设置可在其他页面上使用的值,请使用会话。但是要小心,在尝试从用户的会话中调用默认值之前,您还需要使用cfparam来设置默认值,或者使用structKeyExists()来检查值,因为除非它可能不存在,否则值可能不存在已经设定好了。否则,对于同一页面中使用的值,请使用“请求”范围,或查看其他范围的CF文档,例如:变量,本地等等。