Vbscript-cookies

提供:Dev Guides
移動先:案内検索

VBScriptとCookie

クッキーとは?

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

使い方?

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

  • 有効期限-Cookieの有効期限が切れる日付。 これが空白の場合、訪問者がブラウザを終了すると、Cookieは期限切れになります。
  • ドメイン-サイトのドメイン名。
  • Path -Cookieを設定するディレクトリまたはWebページへのパス。 任意のディレクトリまたはページからCookieを取得する場合、これは空白になる場合があります。
  • Secure -このフィールドに「secure」という単語が含まれている場合、Cookieはセキュアサーバーでのみ取得できます。 このフィールドが空白の場合、そのような制限はありません。
  • Name = Value -Cookieは、キーと値のペアの形式で設定および取得されます。

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

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

クッキーの保存

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

構文

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

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

以下は、input 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>

次の結果が生成されます。 テキストボックスに何かを入力し、「Set Cookie」ボタンを押してクッキーを設定します。

名前を入力:

現在、システムには_name_というCookieがあります。 コンマで区切られた複数の_key = value_ペアを使用して、複数のCookieを設定できます。 次のセクションで、このCookieの読み方を学びます。

クッキーを読む

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

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

<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>

注意-ここで、_UBound_は_Array_クラスのメソッドであり、配列の長さを返します。 別の章で配列について説明します。その時まで、それを消化してみてください。

次の結果が生成されます。 次に、「Cookieを取得」ボタンを押して、前のセクションで設定したCookieを表示します。

注意-マシンにはすでに他のCookieが設定されている場合があります。 したがって、上記のコードは、マシンに設定されているすべての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を読み取ろうとしても何も返されないようにすることがあります。 これを行うには、有効期限を過去の時間に設定するだけです。

次の例では、有効期限を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>