Possible Duplicate:
Calling a variable with a variable in its name - coldfusion?
抱歉,我是 Coldfusion 的新手。尝试在工作中更新一些遗留代码...
我在 coldfusion 中使用变量命名了一个 cookie。
<cfcookie name="#FORM.cookie_name#" Expires="#FORM.cookie_expires#">
如何检查 cookie 是否未过期?这似乎使页面崩溃...
<cfif isDefined("cookie.#FORM.cookie_name#")>
非常感谢。
要检查它是否存在,请使用 StructKeyExists :
StructKeyExists(Cookie,Form.cookie_name)
要使用变量,请使用括号表示法:
Cookie[Form.cookie_name]
不要忘记 Form 变量和 Cookie 变量都是由用户/客户端提交的 - 因此必须适当对待(即永远不要相信它们包含您认为它们所做的,因为不能保证)。
请注意,如果您确实想使用
isDefined形式来做到这一点(尽管它有好处),它需要这样写:
isDefined("Cookie['#Form.cookie_name#']")
然后它将被评估为 Cookie['606ac80d']
- 如果没有这些单引号,它将是一个无效变量。
正如 Leigh 所指出的,以上内容适用于 Railo 和 OpenBD,但不适用于 Adobe ColdFusion,您需要在其中编写:
isDefined("Cookie.#Form.cookie_name#")
此语法适用于简单的字母数字变量名称,但如果 form.cookie_name 包含带有 .
的值,则特别可能会导致问题。