0

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

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

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

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

请说清楚

4

1 回答 1

4

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

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

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

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

于 2013-11-01T22:09:19.317 回答