CFCOOKIE  
説明

有効期限、セキュリティオプションなどの Web ブラウザの Cookie 変数を定義します。

 
カテゴリ

フォームタグ、変数操作タグ

 
シンタックス
<cfcookie
   name = "cookie_name"
   value = "text"
   expires = "period"
   secure = "yes"、"no"
   path = "url"
   domain = ".domain">
 
関連項目

cfdump、cfparam、cfregistry、cfsavecontent、cfschedule、cfset

 
ヒストリ

ColdFusion MX 6.1:

  • expires 属性が変更され、日付/時刻オブジェクトを受け入れるようになりました。
  • Cookie 名には、カンマ、セミコロン、空白文字を除くすべての ASCII 文字を含めることができます。

 
使用方法

このタグで、現在のブラウザセッションが終わっても Cookie が保存されるように指定した場合、クライアントブラウザによって Cookie がローカル Cookie ファイルに書き込まれるか更新されます。Cookie は、ブラウザが閉じられるまでブラウザメモリ内に残ります。expires 属性を指定しない場合、Cookie はブラウザの Cookie ファイルに書き込まれません。

ページ内で cfflush タグの後にこのタグを使用した場合、この Cookie はブラウザに送信されません。ただし、そのブラウザセッション中は、設定した値を Cookie スコープ内で使用することができます。

メモ: 現在のブラウザセッションが無効になったときに無効になる Cookie を作成するには、cfset タグまたは CFScript の代入ステートメントを使用して Cookie スコープ内に変数を設定するという方法もあります (例 : <cfset Cookie.mycookie="sugar">)。Cookie の値を取得するには、Cookie スコープ内でその Cookie の名前を参照します (例 : <cfif Cookie.mycookie is "oatmeal">)。

次の例のように、Cookie 名にピリオド (.) を使用することができます。

<cfcookie name="person.name" value="wilson, john">
<cfset cookie.person.lastname="Santiago">

自分が設定した Cookie でも、クライアントから送信された Cookie でも、Cookie にアクセスするには Cookie スコープを使用します。たとえば、先ほどの例で設定した person.name という Cookie の値を表示するには、次のようにします。

<cfoutput>#cookie.person.name#</cfoutput>
 
<!--- この例では、cfcookie 変数の設定および削除方法を示します。 --->
<!--- サンプルデータベースにコメントを入力したユーザーを選択します。 --->
<cfquery name = "GetAolUser" dataSource = "cfdocexamples">
   SELECT EMail, FromUser, Subject, Posted
   FROM Comments
</cfquery>
<html>
<body>
<h3>cfcookie の例</h3>
<!--- URL 変数 delcookie が存在する場合は、Cookie の有効期限を NOW に設定します。 --->
<cfif IsDefined("url.delcookie") is True>
   <cfcookie name = "TimeVisited"
   value = "#Now()#"
   expires = "NOW">      
<cfelse>
<!--- それ以外の場合は、訪問者のリスト全体をループし、訪問者の電子メールアドレスで aol.com という文字列
に合致するものを見つけた場合に停止します。 --->
<cfloop query = "GetAolUser">
   <cfif FindNoCase("aol.com", Email, 1) is not 0>
      <cfcookie name = "LastAOLVisitor"
      value = "#Email#"
      expires = "NOW" >      
   </cfif>
</cfloop>
<!--- timeVisited Cookie が設定されていない場合は、値を設定します。 --->
   <cfif IsDefined("Cookie.TimeVisited") is False>
      <cfcookie name = "TimeVisited"
      value = "#Now()#"
      expires = "10">
   </cfif>
</cfif>
<!--- 最新の Cookie セットを表示します。 --->
<cfif IsDefined("Cookie.LastAOLVisitor") is "True">
   <p>このサイトを表示した最後の AOL 訪問者 : 
   <cfoutput>#Cookie.LastAOLVisitor#</cfoutput>、日付 : 
   <cfoutput>#DateFormat(COOKIE.TimeVisited)#</cfoutput>
<!--- このリンクを使用して Cookie をリセットします。 --->
<p><a href = "cfcookie.cfm?delcookie = yes">記録を隠す</A>
<cfelse>
   <p>最近このサイトを訪問した AOL 訪問者はいません。
</cfif>
NAME  
  必須
 

Cookie 変数の名前です。ColdFusion は Cookie 名をすべて大文字に変換します。このタグを使って設定する Cookie 名には、カンマ、セミコロン、空白文字を除くすべての印刷可能な ASCII 文字を含めることができます。

VALUE  
  オプション
 

Cookie 変数に割り当てる値です。文字列、または文字列として保管できる変数を指定する必要があります。

EXPIRES  
  オプション
 

Cookie 変数の有効期間です。

  • デフォルトでは、Cookie は、ユーザーがブラウザを閉じると無効になります。つまり、Cookie はセッションのみで有効です。
  • 日付、または日付/時刻オブジェクト (例 : 10/09/97)
  • 日数 (例 : 10、100)
  • now: クライアントの "cookie.txt" ファイルから Cookie を削除します (ただし、アクティブページの Cookie スコープ内の対応する変数は削除しません)。
  • never: Cookie は作成時刻から 30 年後に時間切れになります (Web 上の時間でいえば、実質的に無期限ということになります)。
SECURE  
  オプション
 

ブラウザで SSL (Secure Socket Layer) がサポートされていない場合、Cookie は送信されません。Cookie を使用するには、https プロトコルを使ってページにアクセスする必要があります。

  • yes: 変数を安全に転送する必要があります。
  • no
PATH  
  オプション
 

この Cookie を適用するドメイン内の URL です。通常はディレクトリです。指定のパス内のページのみがこの Cookie を使用できます。デフォルトでは、Cookie を設定したサーバー上のすべてのページがその Cookie にアクセスできます。

path = "/services/login"

複数の URL を指定するには、複数の cfcookie タグを使用します。

path を指定する場合は、domain 属性も指定する必要があります。

DOMAIN  
  path 属性を指定している場合は必須
 
  それ以外の場合はオプション
 

Cookie が有効で、ユーザーのシステムから Cookie の内容を送信できるドメインを指定します。デフォルトでは、Cookie はそれを設定したサーバーでのみ使用できます。この属性を指定すると、Cookie を別のサーバーで使用できるようになります。

ピリオド (.) で始める必要があります。値がサブドメインの場合は、その文字列で終わるすべてのドメイン名が有効なドメインになります。この属性は、サイト上で Cookie を使用できる利用可能なサブドメインを設定します。

国コードで終わる domain 値の場合は、".mongo.state.us" のように、3 つ以上のピリオドが含まれている必要があります。トップレベルドメインの場合は、".mgm.com" のように、ピリオドは 2 つだけ必要です。

IP アドレスをドメインとして使用することはできません。