ASP Cookie

cookieはユーザーを識別するためによく使用されます。

ウェルカムcookie
ウェルカムcookieの作成方法

Cookieとは何ですか?

cookieはユーザーを識別するためによく使用されます。cookieはサーバーがユーザーのコンピュータに残す小さなファイルです。同じコンピュータがブラウザを通じてページをリクエストするとき、そのコンピュータはcookieも送信します。ASPを使用すると、cookieの値を生成し取得できます。

cookieを作成する方法は?

"Response.Cookies" コマンドはcookieを作成するために使用されます。

注意:Response.Cookies コマンドは<html>タグの前に位置する必要があります。

以下の例では、「firstname」というcookieを作成し、「Alex」と割り当てます:

<%
Response.Cookies("firstname")="Alex"
%>

cookieに属性を割り当てることもできます。例えば、cookieの有効期限を設定します:

<%
Response.Cookies("firstname")="Alex" 
Response.Cookies("firstname").Expires=#May 10,2020#
%>

cookieの値を取得する方法は?

"Request.Cookies" コマンドはcookieの値を取得するために使用されます。

以下の例では、「firstname」というcookieの値を取得し、それをページに表示しました:

<%
fname=Request.Cookies("firstname")
response.write("Firstname=" & fname)
%>

出力:

Firstname=Alex

キーを持つcookie

cookieに複数の値を持つ集合がある場合、cookieにはキー(Keys)があります。

以下の例では、「user」というcookieセットを作成します。「user」cookieにはユーザー情報を含むキーがあります:

<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Adams"
Response.Cookies("user")("country")="UK"
Response.Cookies("user")("age")="25"
%>

すべてのcookieを読み取ります

以下のコードを読んでください:

<%
Response.Cookies("firstname")="Alex"
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Adams"
Response.Cookies("user")("country")="UK"
Response.Cookies("user")("age")="25"
%>

仮にサーバーがすべてのこれらのcookieをユーザーに渡していると仮定します。

今、これらのcookieを読み取る必要があります。以下の例では、その方法を説明します(以下のコードでは、cookieがキーを持っているかどうかをHasKeysで確認しています):

<html>
<body>
<%
dim x,y
 for each x in Request.Cookies
  response.write("<p>")
  if Request.Cookies(x).HasKeys then
    for each y in Request.Cookies(x)
      response.write(x & ":" & y & "=" & Request.Cookies(x)(y))
      response.write("<br />")
    next
  else
    Response.Write(x & "=" & Request.Cookies(x) & "<br />")
  end if
  response.write "</p>"
next
%>
</body>
</html>

出力:

firstname=Alex
user:firstname=John
user:lastname=Adams
user:country=UK
user:age=25

cookieをサポートしないブラウザへの対応方法

cookieをサポートしないブラウザと連携する必要があるアプリケーションでは、ページ間で情報を伝えるために他の方法を使用する必要があります。以下に2つの方法があります:

1. URLにパラメータの追加

URLにパラメータを追加することができます:

<a href="welcome.asp?fname=John&lname=Adams">
ウェルカムページに移動
</a>

それでは、以下のような "welcome.asp" ファイルからこれらの値を取得する方法があります:

<%
fname=Request.querystring("fname")
lname=Request.querystring("lname")
response.write("<p>こんにちは " & fname & " " & lname & "!</p>")
response.write("<p>ウェルカムマイウェブサイト!</p>")
%>

2. フォームの使用

ユーザーが送信ボタンをクリックすると、フォームがユーザーが入力したデータを "welcome.asp" に送信します:

<form method="post" action="welcome.asp">
First Name:  <input type="text" name="fname" value="">
Last Name: <input type="text" name="lname" value="">
<input type="submit" value="Submit">
</form>

それでは、"welcome.asp" ファイルからこれらの値を取得する方法は以下のようになります:

<%
fname=Request.form("fname")
lname=Request.form("lname")
response.write("<p>こんにちは " & fname & " " & lname & "!</p>")
response.write("<p>ウェルカムマイウェブサイト!</p>")
%>