Asp: Cookie アプリケーション ガイド、詳細なコード、チュートリアル
著者:Eve Cole
更新時間:2009-06-24 17:28:30
実際、Web 開発では、ユーザーがサイトにアクセスすると、Cookie はユーザーが使用するコンピュータに保存されます。 、Web はこの情報を抽出できます。
現時点では Cookie は魅力的に思えないかもしれませんが、実際には Cookie を使って多くの有意義なことができます。たとえば、サイトにアンケートを実施して訪問者に好みの色やフォントを尋ね、それらに基づいてユーザーの Web インターフェイスをカスタマイズできます。さらに、訪問者のログイン パスワードを保存することもできるため、訪問者が再度サイトを訪問するときに、ログインするためにパスワードを入力する必要がなくなります。
もちろん、Cookie にもいくつかの欠点があります。まず、Cookie の機能は何らかの悪意を達成するようにプログラムされる可能性があるため、ほとんどのブラウザには Cookie を許可するか受け入れるかを設定できるセキュリティ設定があり、Cookie がいつでも使用できるという保証はありません。さらに、訪問者は意図的または非意図的に削除する可能性があります。
クッキー。訪問者のマシンがクラッシュの「ブルー スクリーン」に遭遇した場合、またはハードディスクを再フォーマットした後、またはシステムをインストールした後、以前に保存した Cookie はすべて失われます。最後に、初期のブラウザの中には Cookie をサポートしていないものもあります。
Cookie を使って何ができるでしょうか?
Cookie を使用するには 2 つの基本的な方法があります。
1. 訪問者のコンピュータに Cookie を書き込みます (RESPONSE コマンドを使用します)。
2. 訪問者のコンピュータから Cookie を取得します (REQUEST コマンドを使用します)。
Cookie を作成するための基本的な構文
Response.Cookies("CookieName")=値
次のコードを実行すると、訪問者のコンピュータに name=VisitorName、value=Ken の Cookie が作成されます。
Response.Cookies("訪問者名")="ケン"
次のコードを実行すると、名前 = VisitorName、値 = フォーム内の UserName の値を持つ Cookie が訪問者のコンピュータに作成されます。
Response.Cookies("訪問者名")=リクエスト.フォーム("ユーザー名")
Cookie を読み取るための基本的な構文
Request.Cookies("Cookie名")
リクエスト値は変数として扱うことができます。次のコードを実行すると、KensCookie という名前の Cookie 値が取得され、変数 MyVar に保存されます。
MyVar=Request.Cookies("KensCookie")
次のコードを実行すると、KensCookie という名前の Cookie 値が「Yes」かどうかが判断されます。
Request.Cookies("KensCookie")="Yes" の場合
機能豊富なクッキー
上記のコードを拡張して Cookie サブキー値 (CookieSubName) にすることができます。コードは次のとおりです。
Response.Cookies("訪問者名")("名")="ケン"
Response.Cookies("訪問者名")("姓")="バームバック"
例を説明する前に、コマンド規則と使用有効期限という 2 つの最後の概念について説明します。
命名規則
他の変数に名前を付けるのと同様、Cookie に適切かつ一意の名前を付けると、プログラム内で一貫して使用するのに役立ちます。次の 1 つまたは 2 つを使用できます
cookie 属性は cookie 変数に名前を付けます。
ドメイン属性 (ドメイン): ドメイン属性は、Cookie が生成または読み取られる Web サイトを示します。デフォルトでは、Cookie のドメイン属性は、Cookie を生成した Web サイトに設定されますが、必要に応じて変更することもできます。関連するコードは次のとおりです: Response.Cookies("CookieName").Domain = " www.mydomain.com "
パス属性 (Path): パス属性では、Web サイトに正確なパスを設定することで、Cookie の使用範囲を制限できます。例えば:
Response.Cookies("CookieName").Path = "/maindir/subdir/path"
使用期限
通常、Cookie はブラウザを閉じると存在しなくなります。しかし、以下で説明する Web サイトの例のように、訪問者のコンピュータに Cookie を長期間保存したい場合がよくあります。幸いなことに、これを実現する方法があります。次のコードは、Cookie の有効期限を 2010 年に設定できます。
1月1日:
Response.Cookies("CookieName").Expires=#2010 年 1 月 1 日#
次のコードを実行すると、Cookie の有効期限が「Cookie の作成時間 + 365 日」に設定されます。
Response.Cookies("CookieName")=日付+365
Cookie の使用例 (非常に興味深い)
それでは実際の例についてお話しましょう。たとえば、初めて訪問するときは全員がアンケートを行う必要がありますが、次回以降はその必要がありません。 Cookie を使用すると、データベースを使用せずにこの問題を十分に解決できます。
< %@ LANGUAGE="VBSCRIPT" % >
<%
Survey=Request.Cookies("KensSurvey")
調査 = "の場合、
Response.Cookies("KensSurvey")="x"
Response.Cookies("KensSurvey").Expires=#2010 年 1 月 1 日#
Response.リダイレクト「survey.asp」
それ以外
'ページの残りの部分
次の場合に終了
%>
さて、最初から始めて上記のコードについて説明しましょう。
まず、最初にページをセットアップし、KensSurvey という名前の Cookie 値を読み取ります。
< %@ LANGUAGE="VBSCRIPT" % >
<%
Survey=Request.Cookies("KensSurvey")
次に、Cookie 値がすでに存在するかどうかを確認します。
調査 = "の場合、
存在しない場合は、Cookie が作成および設定され、ページは Survey.asp にリダイレクトされます。 次回訪問するときは、Cookie の値が存在するため、次の場所には移動しません。
調査.asp ページ。
Response.Cookies("KensSurvey")="x"
Response.Cookies("KensSurvey").Expires=#2010 年 1 月 1 日#
Response.リダイレクト「survey.asp」
Cookie がすでに存在する場合、訪問者はページ上の残りのコードを実行します。
'ページの残りの部分
次の場合に終了
%>
例 2
もう 1 つの簡単な例を示します。訪問者がサイトに初めてアクセスしたときにウェルカム メッセージを表示します。コードは次のとおりです。
< %@ LANGUAGE="VBSCRIPT" % >
<%
リクエスト名 = リクエスト.フォーム("名前")
RequestLeaveMeAlone = Request.Form("LeaveMeAlone")
RequestName < >"" または RequestLeaveMeAlone < >"" の場合、
Response.Cookies("MySiteVisitorName") = リクエスト名
Response.Cookies("MySiteVisitorName").Expires = #2010 年 1 月 1 日#
Response.Cookies("MySiteLeaveMeAlone") = リクエストLeaveMeAlone
Response.Cookies("MySiteLeaveMeAlone").Expires = #2010 年 1 月 1 日#
次の場合に終了
訪問者名 = request.cookies("MySite訪問者名")
LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")
VisitorName ="" かつ LeaveMeAlone ="" の場合
%>
< HTML > < HEAD > < /HEAD >
< body bgcolor="#ccffff" text="black" link="navy" vlink="purple" >
< DIV ALIGN="CENTER" >
< フォームアクション="index.asp" メソッド="POST" >
< H2 >友達になりましょう</ H2 >
お名前は何ですか (私たちに知らせたくない場合は、空白のままにして送信ボタンを押してください)
知る)?
< input type="text" name="name" >< BR >< BR >
< input type="hidden" name="LeaveMeAlone" value="x" >
< input type="submit" value="submit" >
</ /フォーム >
< /DIV >
< /BODY >
<%
次の場合に終了
訪問者名 < > "" の場合
Response.write "こんにちは、" & VisitorName & "! 素晴らしい一日をお過ごしのことと思います!"
次の場合に終了
'ページの残りの部分
%>
さて、上記のコード実装が何を行うかを見てみましょう。まずはページを設定します。次に、(同じページ内で) フォーム変数を確認します。フォーム変数が存在する場合は、Cookie を作成し、有効期限を設定します。
< %@ LANGUAGE="VBSCRIPT" % >
<%
リクエスト名 = リクエスト.フォーム("名前")
RequestLeaveMeAlone = Request.Form("LeaveMeAlone")
RequestName < >"" または RequestLeaveMeAlone < >"" の場合、
Response.Cookies("MySiteVisitorName") = リクエスト名
Response.Cookies("MySiteVisitorName").Expires = #2010 年 1 月 1 日#
Response.Cookies("MySiteLeaveMeAlone") = リクエストLeaveMeAlone
Response.Cookies("MySiteLeaveMeAlone").Expires = #2010 年 1 月 1 日#
次の場合に終了
次に、Cookie を読み取ります。
訪問者名 = request.cookies("MySite訪問者名")
LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")
訪問者のコンピュータに Cookie が存在しない場合は、関連情報を要求するフォームを作成します。
VisitorName ="" かつ LeaveMeAlone ="" の場合
%>
<HTML>
<頭>
< /HEAD >
< body bgcolor="#ccffff" text="black" link="navy" vlink="purple" >
< DIV ALIGN="CENTER" >
< フォームアクション="index.asp" メソッド="POST" >
< H2 >友達になりましょう</ H2 >
お名前は何ですか (私たちに知らせたくない場合は、空白のままにして送信ボタンを押してください)
知る)?
< input type="text" name="name" >< br >< br >
< input type="hidden" name="LeaveMeAlone" value="x" >
< input type="submit" value="submit" >
</ /フォーム >
< /DIV >
< /BODY >
<%
次の場合に終了
Cookie がすでに存在し、ユーザー名が存在する場合は、訪問者にようこそ画面を表示し、残りのコードを実行します。
訪問者名 < > "" の場合
Response.write "こんにちは、" & VisitorName & "! 素晴らしい一日をお過ごしのことと思います!"
次の場合に終了
'ページの残りの部分
%>
上記の例は単純ですが、そこから多くの創造的なアプリケーションを拡張できます。フォームに多くの機能を追加して、Web サイトをカスタマイズできます。
訪問者がサイトの色、フォント、その他の Web 要素をカスタマイズできるようにすることもできます。可能であれば、訪問者に誕生日を尋ね、その日に訪問者が訪問したときに「誕生日おめでとう」のメッセージを表示することができます。
ご覧のとおり、Cookie の拡張性は無限であり、この記事は単なる出発点にすぎません。