
- VBScript 教程
- VBScript - 首頁
- VBScript - 概述
- VBScript - 語法
- VBScript - 啟用
- VBScript - 位置
- VBScript - 變數
- VBScript - 常量
- VBScript - 運算子
- VBScript - 決策
- VBScript - 迴圈
- VBScript - 事件
- VBScript - Cookie
- VBScript - 數字
- VBScript - 字串
- VBScript - 陣列
- VBScript - 日期
- VBScript 高階
- VBScript - 過程
- VBScript - 對話方塊
- VBScript - 面向物件
- VBScript - 正則表示式
- VBScript - 錯誤處理
- VBScript - 其他語句
- VBScript 有用資源
- VBScript - 問答
- VBScript - 快速指南
- VBScript - 有用資源
- VBScript - 討論
VBScript 和 Cookie
什麼是 Cookie?
Web 瀏覽器和伺服器使用 HTTP 協議進行通訊,而 HTTP 是一種無狀態協議。但對於商業網站來說,需要在不同的頁面之間維護會話資訊。例如,一個使用者註冊需要完成多個頁面才能結束。但是如何跨所有網頁維護使用者的會話資訊呢?在許多情況下,使用 Cookie 是記住和跟蹤偏好、購買、佣金以及其他改善訪客體驗或網站統計資訊所需的最有效方法。
它是如何工作的?
您的伺服器以 Cookie 的形式向訪問者的瀏覽器傳送一些資料。瀏覽器可能會接受 Cookie。如果接受,它將作為純文字記錄儲存在訪問者的硬碟驅動器上。現在,當訪問者訪問您網站上的另一個頁面時,瀏覽器會將相同的 Cookie 傳送回伺服器以進行檢索。檢索後,您的伺服器就知道/記得之前儲存的內容。Cookie 是 5 個變長欄位的純文字資料記錄:
過期時間 - Cookie 將過期的日期。如果為空,則 Cookie 將在訪問者關閉瀏覽器時過期。
域名 - 您網站的域名。
路徑 - 設定 Cookie 的目錄或網頁的路徑。如果您想從任何目錄或頁面檢索 Cookie,則可以為空。
安全 - 如果此欄位包含“安全”一詞,則 Cookie 只能透過安全伺服器檢索。如果此欄位為空,則不存在此類限制。
名稱=值 - Cookie 以鍵值對的形式設定和檢索。
Cookie 最初是為 CGI 程式設計設計的,Cookie 的資料在 Web 瀏覽器和 Web 伺服器之間自動傳輸,因此伺服器上的 CGI 指令碼可以讀取和寫入儲存在客戶端的 Cookie 值。
VBScript 還可以使用 *Document* 物件的 cookie 屬性來操作 Cookie。VBScript 可以讀取、建立、修改和刪除應用於當前網頁的 Cookie。
儲存 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>
它將產生以下結果。現在在文字框中輸入一些內容,然後按“設定 Cookie”按鈕來設定 Cookie。
現在,您的系統有一個名為 *name* 的 Cookie。您可以使用多個以逗號分隔的 *鍵=值* 對來設定多個 Cookie。您將在下一節中學習如何讀取此 Cookie。
讀取 Cookie
讀取 Cookie 與寫入 Cookie 一樣簡單,因為 *document.cookie* 物件的值就是 Cookie。因此,您可以隨時使用此字串來訪問 Cookie。*document.cookie* 字串將保留以分號分隔的 *名稱=值* 對列表,其中 *名稱* 是 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>
注意 - 這裡,*UBound* 是 *Array* 類的方法,它返回陣列的長度。我們將在單獨的章節中討論陣列;在此之前,請嘗試理解它。
它將產生以下結果。現在,按“獲取 Cookie”按鈕檢視您在上一節中設定的 Cookie。
注意 - 您的計算機上可能已經設定了一些其他 Cookie。因此,上面的程式碼將向您顯示計算機上設定的所有 Cookie。
設定 Cookie 過期日期
您可以透過設定過期日期並在 Cookie 中儲存過期日期來延長 Cookie 的生命週期,使其超過當前瀏覽器會話。這可以透過將 *expires* 屬性設定為日期和時間來完成。
示例
以下示例說明如何設定一個月後的 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 時返回空值。為此,您只需將過期日期設定為過去的時間即可。
示例
以下示例說明如何透過將 Cookie 的過期日期設定為一個月前來刪除 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>