推薦:常見的80004005錯誤及其解決方法在編寫WEB應用程序的過程中,我們常常要跟數據庫打交道,例如我們日常經常用的數據庫ACCESS、SQL SERVER等。在連接這些數據庫的時候,系統往往會給我們一些像這類80004005錯誤,
什麼是Cookie? Cookie 其實是一個標籤,經常可能聽到的中文翻譯:小舔餅。當你訪問一個需要唯一標識你的站址的WEB 站點時,它會在你的硬盤上留下一個標記,下一次你訪問同一個站點時,站點的頁面會查找這個標記。
每個WEB 站點都有自己的標記,標記的內容可以隨時讀取,但只能由該站點的頁面完成。每個站點的Cookie與其他所有站點的Cookie存在同一文件夾中的不同文件內(你可以在win98 的Windows 目錄下的Cookie 文件夾中找到它們,而win2k 則在Documents and Settings 文件夾下特定用戶的cookies 文件夾中)。
一個Cookie 就是一個唯一標識客戶的標記,Cookie 可以包含在一個對話期或幾個對話期之間某個WEB 站點的所有頁面共享的信息,使用Cookie 還可以在頁面之間交換信息。這項功能經常被使用在要求認證客戶密碼以及電子公告板、WEB 聊天室等ASP 程序中。
儘管現在聽起來cookie沒有什麼激動人心的,但實際上利用它,你能實現許多有意義的功能!比如說:你可以在站點上放置一個調查問答表,詢問訪問者最喜歡的顏色和字體,然後根據這些定制用戶的web界面。並且,你還可以保存訪問者的登錄密碼,這樣,當訪問者再次訪問這個站點時,不用再輸入密碼進行登錄。
當然,cookie也有一些不足。首先,由於利用cookie的功能可以編程實現一些不良企圖,所以大多數的瀏覽器中都有安全設定,其中可以設置是否允許或者接受cookie(IE瀏覽器中工具--Internet選項...--安全--自定義級別--Cookie的使用;Netscape瀏覽器中工具--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 = www.CuoXIn.com)
②Path 為一路徑屬性,該屬性可以實現更多的安全要求,通過設置網站上精確的路徑,就能限制cookie的使用範圍。如果未設置該屬性,則使用應用程序的路徑。 (Response.Cookies(CookieName).Path = /maindir/subdir/path )
③Expires 指定cookie 的過期日期。為了在會話結束後將cookie 存儲在客戶端磁盤上,或在許多時候,我們希望能更長時間地在訪問者的計算機上保存cookie。必須設置該日期。若此項屬性的設置未超過當前日期,則在任務結束後cookie 將到期。
後面的代碼,就可以設置cookie的使用到期時間為2010年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,但其中一個的路徑屬性為/www/ 而另一個為/www/home/,客戶端瀏覽器同時將兩個cookie 都發送到/www/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 (<br>) Else for each key in Request.Cookies(cookie) Response.write (<font color=blue>) Response.write cookie & .(&key&) & = & Request.Cookies(cookie)(key) Response.write (</font><br>) 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 %> <HTML> <HEAD> </HEAD> <body> <DIV ALIGN=CENTER > <Form action=check.asp method=POST> Bgcolor: <input type=text name=bgcolor><BR> Fgcolor: <input type=text name=fgcolor><BR> Password:<input type=password name=pwd><BR> <input type=submit value=Submit> </Form> </DIV> </BODY> <% 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(<body bgcolor=&bgcolor&><font color=&fgcolor&>)%> 你的密碼是: <%response.write( &pwd& )%> |