VBScriptとCookie

クッキーとは何ですか?

WebブラウザとサーバーはHTTPプロトコルを使用して通信し、HTTPはステートレスプロトコルです。ただし、商用Webサイトの場合、異なるページ間でセッション情報を維持する必要があります。たとえば、1人のユーザー登録は、多くのページを完了した後に終了します。しかし、すべてのWebページにわたってユーザーのセッション情報を維持する方法。多くの場合、Cookieを使用することは、訪問者のエクスペリエンスやサイトの統計を改善するために必要な設定、購入、手数料、およびその他の情報を記憶および追跡するための最も効率的な方法です。

使い方?

サーバーは、Cookieの形式で訪問者のブラウザにデータを送信します。ブラウザはCookieを受け入れる場合があります。含まれている場合は、訪問者のハードドライブにプレーンテキストレコードとして保存されます。これで、訪問者がサイトの別のページにアクセスすると、ブラウザは同じCookieをサーバーに送信して取得します。取得されると、サーバーは以前に保存されたものを認識/記憶します。Cookieは、5つの可変長フィールドのプレーンテキストデータレコードです-

  • Expires−Cookieの有効期限が切れる日付。これが空白の場合、訪問者がブラウザを終了するとCookieは期限切れになります。

  • Domain −サイトのドメイン名。

  • Path−Cookieを設定したディレクトリまたはWebページへのパス。任意のディレクトリまたはページからCookieを取得する場合は、これを空白にすることができます。

  • Secure−このフィールドに「セキュア」という単語が含まれている場合、Cookieはセキュアサーバーでのみ取得できます。このフィールドが空白の場合、そのような制限はありません。

  • Name=Value − Cookieは、キーと値のペアの形式で設定および取得されます。

Cookieは元々CGIプログラミング用に設計されており、CookieのデータはWebブラウザとWebサーバー間で自動的に送信されるため、サーバー上のCGIスクリプトはクライアントに保存されているCookie値を読み書きできます。

VBScriptは、Documentオブジェクトのcookieプロパティを使用してcookieを操作することもできます。VBScriptは、現在のWebページに適用される1つまたは複数のCookieを読み取り、作成、変更、および削除できます。

クッキーの保存

Cookieを作成する最も簡単な方法は、次のような文字列値をdocument.cookieオブジェクトに割り当てることです。

構文

document.cookie = "key1 = value1;key2 = value2;expires = date"

ここでexpires属性はオプションです。この属性に有効な日付または時刻を指定すると、Cookieは指定された日付または時刻に期限切れになり、それ以降はCookieの値にアクセスできなくなります。

以下は、入力Cookieに顧客名を設定する例です。

<html>
   <head>
      <script type = "text/vbscript">
         Function WriteCookie
            If document.myform.customer.value = "" Then
               msgbox "Enter some value!"
            Else
               cookievalue = (document.myform.customer.value)
               document.cookie = "name = " + cookievalue
               msgbox "Setting Cookies : " & "name = " & cookievalue
            End If
         End Function
      </script>
   </head>
   
   <body>
      <form name = "myform" action = "">
         Enter name: <input type = "text" name = "customer"/>
         <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
      </form>
   </body>
</html>

次のような結果になります。次に、テキストボックスに何かを入力し、[Cookieの設定]ボタンを押してCookieを設定します。

これで、システムにnameというCookieが作成されました。カンマで区切られた複数のキー=値のペアを使用して、複数のCookieを設定できます。次のセクションで、このCookieの読み方を学びます。

クッキーを読む

document.cookieオブジェクトの値はcookieであるため、cookieの読み取りは書き込みと同じくらい簡単です。したがって、Cookieにアクセスするときはいつでもこの文字列を使用できます。document.cookieの文字列は、リスト保持します名前=値のセミコロンで区切らペアの名前がされて名前のクッキーと値のは、その文字列値です。文字列のsplit()関数を使用して、次のように文字列をキーと値に分割できます。

以下は、前のセクションで設定されたCookieを取得する例です-

<html>
   <head>
      <script type = "text/vbscript">
         Function ReadCookie
            allcookies = document.cookie
            msgbox "All Cookies : " + allcookies
            cookiearray = split(allcookies,";")
            
            For i = 0 to ubound(cookiearray)
               Name  = Split(cookiearray(i),"=")
               Msgbox "Key is : " + Name(0) + " and Value is : " + Name(1)
            Next
         End Function
      </script>
   </head>
   
   <body>
      <form name = "myform" action = "">
         <input type = "button" value = "Get Cookie" onclick = "ReadCookie()"/>
      </form>
   </body>
</html>

Note−ここで、UBound配列クラスのメソッドであり、配列の長さを返します。アレイについては別の章で説明します。その時まで、消化してみてください。

次のような結果になります。次に、[Cookieを取得]ボタンを押して、前のセクションで設定したCookieを表示します。

Note−マシンにすでに他のCookieが設定されている可能性があります。したがって、上記のコードは、マシンに設定されているすべてのCookieを表示します。

クッキーの有効期限の設定

有効期限を設定し、Cookie内に有効期限を保存することにより、現在のブラウザセッションを超えてCookieの寿命を延ばすことができます。これは、expires属性を日付と時刻に設定することで実行できます。

次の例は、1か月後にCookieの有効期限を設定する方法を示しています-

<html>
   <head>
      <script type = "text/vbscript">
         Function WriteCookie()
            x = now()
            y = dateadd("m",1,now())  ' Making it to expire next 
            cookievalue = document.myform.customer.value
            document.cookie = "name = "  & cookievalue
            document.cookie = "expires = " & y
            msgbox("Setting Cookies : " & "name=" & cookievalue )
         End Function
      </script>
   </head>
   <body>
      <form name = "myform" action = "">
         Enter name: <input type = "text" name = "customer"/>
         <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
      </form>
   </body>
</html>

クッキーの削除

場合によっては、Cookieを削除して、その後Cookieを読み取ろうとしても何も返さないようにする必要があります。これを行うには、有効期限を過去の時間に設定する必要があります。

次の例は、Cookieの有効期限を1か月前に設定してCookieを削除する方法を示しています。

<html>
   <head>
      <script type = "text/vbscript">
         Function WriteCookie()
            x = now()
            x = now()
            a = Month(x)-1
            b = day(x)
            c = year(x)
            d = DateSerial(c,a,b)
            e = hour(x) 
            
            msgbox e
            f = minute(x)
            
            msgbox f
            d = cdate(d & " " & e & ":" & f)
            
            msgbox d
            cookievalue = document.myform.customer.value
            document.cookie = "name = "  & cookievalue
            document.cookie = "expires = " & d
            msgbox("Setting Cookies : " & "name=" & cookievalue )
         End Function
      </script>
   </head>
   <body>
      <form name = "myform" action = "">
         Enter name: <input type = "text" name = "customer"/>
         <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
      </form>
   </body>
</html>