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