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>") %>