ASP程式設計入門高階(六) Cookies講座

2021-03-31 08:56:59 字數 4682 閱讀 2594

乙個 cookie 就是乙個唯一標識客戶的標記,cookie 可以包含在乙個對話期或幾個對話期之間某個 web 站點的所有頁面共享的資訊,使用 cookie 還可以在頁面之間交換資訊。這項功能經常被使用在要求認證客戶密碼以及電子公告板、web 聊天室等 asp 程式中。

當然,cookie也有一些不足。首先,由於利用cookie的功能可以程式設計實現一些不良企圖,所以大多數的瀏覽器中都有安全設定,其中可以設定是否允許或者接受cookie(ie瀏覽器中「工具」--「inter***選項...」--「安全」--「自定義級別」--「cookie的使用」;***scape瀏覽器中「工具」--「cookie管理器」--「管理貯存的cookie」即可),因此這就不能保證隨時能使用cookie。再者,訪問者可能有意或者無意地刪除cookie。當訪問者的機器遇到「藍屏」宕機時,或者重新格式化硬碟、安裝系統後,原來儲存的cookie將全部丟失。最後一點,有一些最初始的瀏覽器並不能支援cookie。

◆ 怎樣利用cooklie?

有2種使用cookie的基本方式:

1、將cookie寫入訪問者的計算機(使用 response 命令)

2、從訪問者的計算機中取回cookie(使用 request 命令)

◆ 建立cookie的基本語法: response.cookies(cookie)[(key)|.attribute]=value

這裡的 cookie 是指定 cookie 的名稱。

而如果指定了 key,則該 cookie 就是乙個字典。

(測試一cookie是否為乙個字典可用後面**顯示布林值:<%=request.cookies("cookiename").haskeys%>。為true是字典,false則不是。 )

attribute 指定 cookie 自身的有關資訊。attribute 引數可以是下列之一 :

①domain 若被指定,則 cookie 將被傳送到對該域的請求中去。域屬性表明cookie由哪個**產生或者讀取,預設情況下,cookie的域屬性設定為產生它的**,但你也可以根據需要改變它。(response.cookies("cookiename").domain = ".mydomain.***")

②path 為一路徑屬性,該屬性可以實現更多的安全要求,通過設定**上精確的路徑,就能限制cookie的使用範圍。如果未設定該屬性,則使用應用程式的路徑。(response.cookies("cookiename").path = "/maindir/subdir/path" )

③expires 指定 cookie 的過期日期。為了在會話結束後將 cookie 儲存在客戶端磁碟上,或在許多時候,我們希望能更長時間地在訪問者的計算機上儲存cookie。必須設定該日期。若此項屬性的設定未超過當前日期,則在任務結束後 cookie 將到期。

後面的**,就可以設定cookie的使用到期時間為「2023年1月1日」: response.cookies("cookiename").expires=#january 01, 2010#

後面的**,將設定cookie的過期時間為「cookie的建立時間+365天」:response.cookies("cookiename").expires=date+365

但最好不要隨便寫 response.cookies("cookiename").expires=date,這樣頁面之間的呼叫時值會為空。

執行下面的**將會在訪問者的計算機中建立乙個cookie,名字=visitorname,值=ken :

response.cookies("visitorname")="ken"

執行下面的**將會在訪問者的計算機中建立乙個cookie,名字=visitorname,值=表單中username的值

response.cookies("visitorname")=request.form("username")

你可以擴充套件下面的**成為cookie子關鍵值(cookiesubname),即cookie字典的生成。**如下:

response.cookies("visitorname")("firstname")="ken"

response.cookies("visitorname")("lastname")="baumbach"

◆ 讀取cookie的基本語法:request.cookies(cookie)[(key)|.attribute]

cookie 指定要檢索其值的 cookie。

key 可選引數,用於從 cookie 字典中檢索子關鍵字的值。

attribe 指定 cookie 自身的有關資訊。如:haskeys 唯讀,指定 cookie 是否包含關鍵字。

如果客戶端瀏覽器傳送了兩個同名的 cookie,那麼 request.cookie 將返回其中路徑結構較深的乙個。例如,如果有兩個同名的的 cookie,但其中乙個的路徑屬性為 // 而另乙個為 //home/,客戶端瀏覽器同時將兩個 cookie 都傳送到 //home/ 目錄中,那麼 request.cookie 將只返回第二個 cookie。

案例分析:

◆ num.asp(通過留在本地磁碟上的cookie記錄一年內訪問本站的次數,第一次顯示「首次訪問」,以後顯示「第幾次訪問」)

<%

dim num

num=request.cookies("visitnum")

if num > "0" then

num=num+1

response.write "您已是第"&num&"次訪問本站點了。"

else

response.write "歡迎您首次訪問本站。"

num=1

end if

response.cookies("visitnum")=num

response.cookies("visitnum").expires=date+365

%>

◆ showcookie.asp(從cookies資料夾中遍歷出瀏覽器所有的cookie name,以及相關的字典cookie的顯示(藍字顯示))

<%

for each cookie in request.cookies

if request.cookies(cookie).haskeys =false then

response.write cookie & "=" & request.cookies(cookie)

response.write ("

") else

for each key in request.cookies(cookie)

response.write ("")

response.write cookie & ".("&key&")" & "=" & request.cookies(cookie)(key)

response.write ("

")next

end if

next

%>

◆ check.asp

首先,設定頁面。然後,檢查表單變數(在同乙個頁面中)。如果表單變數存在,就建立cookie,並設定到期時間。

<%@ language="vbscript" %>

<%

bgcolor = request.form("bgcolor")

fgcolor = request.form("fgcolor")

pwd = request.form("pwd")

if bgcolor <>"" or fgcolor <>"" then

response.cookies("check")("bgcolor") = bgcolor

response.cookies("check")("fgcolor") = fgcolor

response.cookies("check")("pwd") = pwd

response.cookies("check").expires=#may 01, 2004#

end if

'接著,讀取cookie

bgcolor = request.cookies("check")("bgcolor")

fgcolor = request.cookies("check")("fgcolor")

pwd = request.cookies("check")("pwd")

'如果cookie在訪問者的計算機上不存在,就建立乙個表單,詢問相關資訊

if bgcolor ="" and fgcolor ="" and pwd="" then

%>

<%

end if

'如果cookie已經存在,並且bgcolor存在,就跳轉到color.asp。

if bgcolor <> "" then

response.redirect "color.asp"

end if

%>

◆ color.asp(顯示使用者愛好顏色的頁面特性)

<%

bgcolor=request.cookies("check")("bgcolor")

fgcolor=request.cookies("check")("fgcolor")

pwd=request.cookies("check")("pwd")

%>

<%response.write("")%>

你的密碼是:

<%response.write(" "&pwd&" ")%>

ASP程式設計入門高階(六) Cookies講座

dim num num request.cookies visitnum if num 0 then num num 1 response.write 您已是第 num 次訪問本站點了。else response.write 歡迎您首次訪問本站。num 1 end if response.cooki...

ASP程式設計入門高階 Application

1,num.asp 上面的程式,你會發現每重新整理一次,都會記數累加,如按ip值訪問來記數的話,則建立乙個session。2,vnum.asp if session visitnum then session visitnum visited end if 當然需要注意的是 記數要確保伺服器不被重啟...

ASP程式設計入門高階(七) 內建物件Server

server 物件提供對伺服器上的方法和屬性的訪問 其中大多數方法和屬性是作為實用程式的功能服務。iis help翻譯 有了 server 物件,你就可以在伺服器上啟動 activex 物件例程,並使用 active server 服務提供象 html 和 url 編碼這樣的函式。一 script....