iT邦幫忙

0

ASP.NET Web Pages - w3schools note - Cookies

  • 分享至 

  • xImage
  •  

Cookies

當同一台電腦透過瀏覽器請求頁面時,將會發送 cookie。

在ASP中,我們可以透過Response.Cookies這個方法創建Cookies

<%
Response.Cookies("firstname")="Alex"
%>

()中的是給Cookies命名的名稱,Alex則是其值

也可以給Cookies設定一些屬性
像這邊範例提供的就是給予日期

<%
Response.Cookies("firstname")="Alex"
Response.Cookies("firstname").Expires=#May 10,2012#
%>

而如果我們要取到已創建好的Cookies的話,則要透過Request.Cookies這個方法
透過一個變數來存取到的值
<%
fname=Request.Cookies("firstname")
response.write("Firstname=" & fname)
%>

Cookies的Keys

ASP中,一樣透過Response.Cookies這個方法來創建
在這段程式碼中,前面的user應該是表示這些keys的集合名稱
也就是這些keys都是屬於user

<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>

若我們要讀取Cookies當中的keys的話
則可以透過迴圈來讀取出來,如下方範例程式碼
先假設已經創建了這些Cookies,其中包含有keys的,以及沒有keys

<%
Response.Cookies("firstname")="Alex"
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Smith"
Response.Cookies("user")("country")="Norway"
Response.Cookies("user")("age")="25"
%>
<!DOCTYPE html>
<html>
<body>

<%
dim x,y
for each x in Request.Cookies
  response.write("<p>")
  if Request.Cookies(x).HasKeys then
    for each y in Request.Cookies(x)
      response.write(x & ":" & y & "=" & Request.Cookies(x)(y))
      response.write("<br>")
    next
  else
    Response.Write(x & "=" & Request.Cookies(x) & "<br>")
  end if
  response.write "</p>"
next
%>

</body>
</html>

在上面這段程式碼中可以看到,首先創建兩個變數,分別為xy
然後透過迴圈,讓x這個變數去讀取當前已經創建過的Cookies
這邊先輸出HTML的段落標籤前面的部份,也就是<p>
接下來進入到if判斷,判斷當前讀取到的Cookies是否有keys

  • keys
    如果有的話則執行另一個迴圈,表示當前只有讀取到一個集合,這個集合名稱被變數x讀取到
    因此要再透過迴圈來讀取集合中的keys,然後將其輸出,
    &這個符號在這邊感覺和Java語言中的+類似 (這邊並不是指作為運算子的部分)
    因為這個Keys是在x這個暫時的集合名稱底下,再來變數y則是作為索引?來讀取當前的keys
    因此才會是Request.Cookies(x)(y))這樣寫,這個寫法和陣列之類的有點類似
    最後在寫一個HTML換行標籤<br>HTML的段落標籤後面的部份,也就是</p>將文字包住
  • 沒有keys
    如果沒有的話,則直接輸出當前這個Cookies,也表示它不是一個集合名稱?
    因此這邊的寫法會是Request.Cookies(x)
    然後後面還有一個HTML換行標籤<br>HTML的段落標籤後面的部份,也就是</p>將文字包住

瀏覽器不接受Cookies怎麼辦?

  1. 透過URL傳遞
<a href="welcome.asp?fname=John&lname=Smith">Go to Welcome Page</a>

<a>href屬性中指定目標頁面的URL,並在URL中添加參數
要傳遞到的頁面為welcome.asp
傳遞的參數則為?fname=John&lname=Smith,包含著名字和姓氏
然後再welcome.asp我們可以透過下面這樣的程式碼來獲取當中的值

<%
fname=Request.querystring("fname")
lname=Request.querystring("lname")
response.write("<p>Hello " & fname & " " & lname & "!</p>")
response.write("<p>Welcome to my Web site!</p>")
%>

welcome.asp當中,可以透過Request.querystring這個方法來獲取URL中的參數值
然後再將其輸出,輸出的方法及當中的標籤文章上面已經有寫

就好比有一個頁面 welcome.asp,我們想要將用戶的名字和姓氏傳遞到這個頁面,就可以在這個頁面的連結上加上你想傳遞的參數及參數的值

  1. 透過表單傳遞
<form method="post" action="welcome.asp">
First Name: <input type="text" name="fname" value="">
Last Name: <input type="text" name="lname" value="">
<input type="submit" value="Submit">
</form>

在用戶點擊提交(Submit)按鈕時將用戶輸入的信息傳遞給下一個頁面。
<form>action屬性中指定目標頁面的URL,並使用method="post"表示使用POST方法提交表單。

<%
fname=Request.form("fname")
lname=Request.form("lname")
response.write("<p>Hello " & fname & " " & lname & "!</p>")
response.write("<p>Welcome to my Web site!</p>")
%>

在目標頁面(這個例子中是"welcome.asp")中,使用Request.form方法檢索從表單提交的參數值。
然後再將其輸出,輸出的方法及當中的標籤文章上面已經有寫

表單就像是一張紙,可以在上面填寫信息並提交。
當填寫完表單並點擊提交按鈕時,這些信息將被提交到另一個頁面進行處理。

筆記來源:ASP Cookies


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言