2008/08/27

[ColdFusion]セッション変数

マッシュアップアワードに作品を出展する際に、セッション変数がほしかったので、その設定方法について

<cfapplication name="test" sessionManagement="yes"
sessionTimeout="#CreateTimeSpan(0,0,1,0)#"
>

<cfif Not IsDefined("Session.hoge")>
<!--- セッション変数に値をセット --->
<cflock timeout="10" scope="session" type="Exclusive">
<cfset Session.hoge = "foo">
</cflock>
</cfif>

<cfoutput>
#Session.hoge#
</cfoutput>

まず、cfapplicationタグで、セッション変数を使えるようにします。

アプリケーションのタイトルと、セッション変数のタイムアウトを設定すれば使えるようになります。
sessionManagement属性をyesにする必要もあります。

設定後、cflockで、セッション変数にロックをかけた後、変数に値をセットします。

セットした後は、Session構造体で表示を行うことができます。

このとき注意なのは、cfapplicationタグよりも上でセッション変数をセットできないところ。

下のような場合、アプリケーションエラーが発生します。

<!--- セッション変数に値をセット --->
<cflock timeout="10" scope="session" type="Exclusive">
<cfset Session.hoge = "foo">
</cflock>


<cfapplication name="test" sessionManagement="yes"
sessionTimeout="#CreateTimeSpan(0,0,1,0)#"
>

<cfoutput>
#Session.hoge#
</cfoutput>

セッション変数を使いたいときに注意したいです。

0 コメント:

コメントを投稿