3

重複の可能性:
名前に変数が含まれる変数を呼び出す-coldfusion?

申し訳ありませんが、Coldfusionの初心者です。作業中のレガシーコードを更新しようとしています...

変数を使用して、ColdFusionでCookieに名前を付けました。

<cfcookie name="#FORM.cookie_name#" Expires="#FORM.cookie_expires#">

Cookieの有効期限が切れていないかどうかを確認するにはどうすればよいですか?これはページをクラッシュさせるようです...

<cfif isDefined("cookie.#FORM.cookie_name#")>

どうもありがとう。

4

2 に答える 2

8

存在するかどうかを確認するには、StructKeyExistsを使用します。

StructKeyExists(Cookie,Form.cookie_name)

変数を使用するには、角かっこ表記を使用します。

Cookie[Form.cookie_name]


フォーム変数とCookie変数の両方がユーザー/クライアントによって送信されることを忘れないでください。したがって、適切に処理する必要があります(つまり、保証されていないため、それらが自分の考えていることを含んでいるとは決して信じないでください)。



これを行うためにisDefinedフォーム を使用したい場合は(利点はありますが)、次のように記述する必要があることに注意してください。

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

これらの単一引用符Cookie['606ac80d']がないと、無効な変数になります。

Leighが指摘したように、上記はRailoとOpenBDで機能しますが、AdobeColdFusionでは機能しません。

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

この構文は単純な英数字の変数名で機能しますが、form.cookie_nameにinが含まれる値が含まれている場合は特に問題が発生する可能性があります.

于 2012-09-17T14:49:36.553 に答える
-1

お役に立てれば :)

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

この投稿と同様の質問

于 2012-09-17T14:54:47.050 に答える