如何在Coldfusion中检索名称是通过变量设置的cookie?

时间:2012-09-17 14:24:39

标签: cookies coldfusion

  

可能重复:
  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#")>

非常感谢。

2 个答案:

答案 0 :(得分:7)

要检查它是否存在,请使用StructKeyExists

StructKeyExists(Cookie,Form.cookie_name)

要使用该变量,请使用括号表示法:

Cookie[Form.cookie_name]


不要忘记表单变量和Cookie变量都是由用户/客户端提交的 - 因此必须得到适当的处理(即永远不要相信它们包含您认为他们所做的事情,因为它不能保证)。


<小时/> 请注意,如果您确实希望使用isDefined表单来执行此操作(尽管它有好处),则需要按以下方式编写:

isDefined("Cookie['#Form.cookie_name#']")

然后将其评估为Cookie['606ac80d'] - 如果没有这些单引号,则它将是无效变量。

正如Leigh所说,上述内容适用于Railo和OpenBD,但不适用于需要编写的Adobe ColdFusion:

isDefined("Cookie.#Form.cookie_name#")

此语法适用于简单的字母数字变量名称,但如果form.cookie_name包含值为.的值,则可能会导致问题。

答案 1 :(得分:0)

希望这有帮助:)

<cfcookie name="#form.cookie_name#" Expires="#form.cookie_expires#">
<cfif structKeyExists(cookie, form.cookie_name)>
Cookie
</cfif>

与此post

类似的问题