VBScript và Cookie
Cookies là gì?
Trình duyệt Web và Máy chủ sử dụng giao thức HTTP để giao tiếp và HTTP là một giao thức không trạng thái. Nhưng đối với một trang web thương mại, bắt buộc phải duy trì thông tin phiên giữa các trang khác nhau. Ví dụ: một đăng ký người dùng kết thúc sau khi hoàn thành nhiều trang. Nhưng làm thế nào để duy trì thông tin phiên của người dùng trên tất cả các trang web. Trong nhiều tình huống, sử dụng cookie là phương pháp hiệu quả nhất để ghi nhớ và theo dõi các sở thích, mua hàng, hoa hồng và các thông tin khác cần thiết để có trải nghiệm khách truy cập hoặc thống kê trang web tốt hơn.
Làm thế nào nó hoạt động?
Máy chủ của bạn gửi một số dữ liệu đến trình duyệt của khách truy cập dưới dạng cookie. Trình duyệt có thể chấp nhận cookie. Nếu có, nó sẽ được lưu trữ dưới dạng một bản ghi văn bản thuần túy trên ổ cứng của khách truy cập. Bây giờ, khi khách truy cập đến một trang khác trên trang web của bạn, trình duyệt sẽ gửi cùng một cookie đến máy chủ để truy xuất. Sau khi được truy xuất, máy chủ của bạn biết / ghi nhớ những gì đã được lưu trữ trước đó. Cookie là một bản ghi dữ liệu văn bản thuần túy gồm 5 trường có độ dài thay đổi -
Expires- Ngày cookie sẽ hết hạn. Nếu ô này trống, cookie sẽ hết hạn khi khách truy cập thoát khỏi trình duyệt.
Domain - Tên miền của trang web của bạn.
Path- Đường dẫn đến thư mục hoặc trang web đặt cookie. Phần này có thể để trống nếu bạn muốn lấy cookie từ bất kỳ thư mục hoặc trang nào.
Secure- Nếu trường này chứa từ "an toàn", thì cookie chỉ có thể được truy xuất bằng máy chủ bảo mật. Nếu trường này trống, không có hạn chế như vậy tồn tại.
Name=Value - Cookie được thiết lập và truy xuất dưới dạng các cặp khóa và giá trị.
Cookie ban đầu được thiết kế để lập trình CGI và dữ liệu của cookie được truyền tự động giữa trình duyệt web và máy chủ web, vì vậy các tập lệnh CGI trên máy chủ có thể đọc và ghi các giá trị cookie được lưu trữ trên máy khách.
VBScript cũng có thể thao tác cookie bằng cách sử dụng thuộc tính cookie của đối tượng Document . VBScript có thể đọc, tạo, sửa đổi và xóa cookie hoặc cookie áp dụng cho trang web hiện tại.
Lưu trữ Cookie
Cách đơn giản nhất để tạo cookie là gán một giá trị chuỗi cho đối tượng document.cookie , trông giống như sau:
Cú pháp
document.cookie = "key1 = value1;key2 = value2;expires = date"
Ở đây thuộc tính hết hạn là tùy chọn. Nếu bạn cung cấp thuộc tính này với ngày hoặc giờ hợp lệ, thì cookie sẽ hết hạn vào ngày hoặc giờ nhất định và sau đó giá trị của cookie sẽ không thể truy cập được.
Thí dụ
Sau đây là ví dụ để đặt tên khách hàng trong cookie đầu vào .
<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>
Nó sẽ tạo ra kết quả sau. Bây giờ nhập một cái gì đó vào hộp văn bản và nhấn nút "Đặt Cookie" để đặt cookie.
Bây giờ, hệ thống của bạn có một cookie được gọi là tên . Bạn có thể đặt nhiều cookie bằng cách sử dụng nhiều cặp key = value được phân tách bằng dấu phẩy. Bạn sẽ học cách đọc cookie này trong phần tiếp theo.
Đọc cookie
Đọc một cookie cũng đơn giản như viết một cookie, vì giá trị của đối tượng document.cookie chính là cookie. Vì vậy, bạn có thể sử dụng chuỗi này bất cứ khi nào bạn muốn truy cập cookie. Chuỗi document.cookie sẽ giữ một danh sách các cặp name = value được phân tách bằng dấu chấm phẩy trong đó name là tên của cookie và value là giá trị chuỗi của nó. Bạn có thể sử dụng hàm split () của chuỗi để ngắt chuỗi thành các khóa và giá trị như sau:
Thí dụ
Sau đây là ví dụ để lấy cookie được đặt trong phần trước -
<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- Ở đây UBound là một phương thức của lớp Array , nó trả về độ dài của một mảng. Chúng ta sẽ thảo luận về Mảng trong một chương riêng biệt; cho đến thời điểm đó, hãy cố gắng tiêu hóa nó.
Nó sẽ tạo ra kết quả sau. Bây giờ, nhấn nút "Get Cookie" để xem các cookie mà bạn đã thiết lập trong phần trước.
Note- Có thể có một số cookie khác đã được đặt trên máy của bạn. Vì vậy, đoạn mã trên sẽ hiển thị cho bạn tất cả các cookie được thiết lập trên máy của bạn.
Đặt ngày hết hạn cookie
Bạn có thể kéo dài tuổi thọ của cookie ngoài phiên trình duyệt hiện tại bằng cách đặt ngày hết hạn và lưu ngày hết hạn trong cookie. Điều này có thể được thực hiện bằng cách đặt thuộc tính hết hạn thành ngày và giờ.
Thí dụ
Ví dụ sau minh họa cách đặt ngày hết hạn cookie sau 1 Tháng -
<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>
Xóa cookie
Đôi khi, bạn sẽ muốn xóa một cookie để những lần thử đọc cookie sau đó không trả lại kết quả gì. Để làm điều này, bạn chỉ cần đặt ngày hết hạn thành một thời điểm trong quá khứ.
Thí dụ
Ví dụ sau minh họa cách xóa cookie bằng cách đặt ngày hết hạn của nó là 1 Tháng trước -
<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>