Session 寒冷的会议

Session 寒冷的会议,session,coldfusion,Session,Coldfusion,因为我使用的系统具有登录和注销功能,所以当我登录到系统时,我在会话中。我对会话还不熟悉,我的问题是,无论我在任何coldfusion页面中定义了什么变量及其值,我都能在任何页面上使用它吗 例如,在浏览我的系统代码时,我在每个CFML页面上都会看到以下一行: <cfparam name="INPUTID" default="0"> 后来在页面的某个地方,我看到这个变量被像\INPUTId一样使用 请澄清以回答“无论我在任何coldfusion页面中定义了什么变量及其值,我是否能够

因为我使用的系统具有登录和注销功能,所以当我登录到系统时,我在会话中。我对会话还不熟悉,我的问题是,无论我在任何coldfusion页面中定义了什么变量及其值,我都能在任何页面上使用它吗

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

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

后来在页面的某个地方,我看到这个变量被像
\INPUTId
一样使用

请澄清以回答“无论我在任何coldfusion页面中定义了什么变量及其值,我是否能够在任何页面上使用它”。。。那要看情况

如果设置会话变量,例如
,则可以在任何页面上调用
#session.foo
,因为它将存储在用户的会话中

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

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

要回答“无论我在任何coldfusion页面中定义了什么变量及其值,我都可以在任何页面上使用它”。。。那要看情况

如果设置会话变量,例如
,则可以在任何页面上调用
#session.foo
,因为它将存储在用户的会话中

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


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

上述代码与会话无关。它只是为变量设置一个默认值。请同时查看和上的文档。非范围变量,如上面的一个,默认情况下通常放在
变量
范围内。我建议尽量减少会话变量的使用。原因是,在现代浏览器中,用户可能会以您没有预料到的方式更改这些内容。@ColdFusion中的DanBracuk会话变量可能与您所想的不同,这些代码与会话无关。它只是为变量设置一个默认值。请同时查看和上的文档。非范围变量,如上面的一个,默认情况下通常放在
变量
范围内。我建议尽量减少会话变量的使用。原因是,在现代浏览器中,用户可能会以您没有预料到的方式更改这些内容。@ColdFusion中的DanBracuk会话变量可能与您所想的HMM不同,甚至我也认为它应该有类似于session.foo之类的东西,但它仍然没有任何东西,它从某处获得了一个值。无论如何,谢谢,我正在弄清楚这里发生了什么,因为我的文件中包含了很多cfc。再次感谢你。有些东西存在并保持空白通常会更好。这样你就不必测试存在性和非空白性。另一方面,如果某个东西应该存在,但不存在,这可能意味着该页面没有以正确的方式访问,应该采取适当的措施。嗯,甚至我也认为它应该有类似于session.foo之类的东西,但它仍然没有任何东西,它从某处获得了一个值。无论如何,谢谢,我正在弄清楚这里发生了什么,因为我的文件中包含了很多cfc。再次感谢你。有些东西存在并保持空白通常会更好。这样,您就不必测试存在性和非空白性。另一方面,如果某个内容应该存在并且不存在,这可能意味着该页面没有以正确的方式访问,应该采取适当的操作。