网络编程
位置:首页>> 网络编程>> Asp编程>> ASP中Cookies集合使用方法详解(3)

ASP中Cookies集合使用方法详解(3)

作者:CODEOF  发布时间:2007-09-14 10:16:00 

标签:cookies,asp

  ASP中的cookie的使用
  在这一节我们将学习那些提供给ASP代码使用的集合、方法和属性的各种技术。
  1) cookie中存储用户的细节情况

  可以使用cookie来存储这两类值:当浏览器关闭时我们不想保存的值(例如用户的注册信息)以及在用户访问站点时要保留的值。在每种情况下cookie的值对于来自用户浏览器的每个页面请求的ASP都是可用的。
  然而,需要记住的是,cookie只有在对Cookie中的虚拟路径(path)内的页面发出请求时,才会发往服务器。缺省时,假如path的值在cookie中没有设置,则其值为创建cookie的页面的虚拟路径。为使一个cookie发往一个站点的所有页面,需要使用path=“/”。
这里是个实例,从自定义的Login页面中,将用户的注册信息存贮在一个cookie中,由于没有应用有效期,cookie值仅在关闭这个浏览器这前保留:

... 
Request.Cookies(“User”)(“UID”) = “<% = Request(“UserName”) %>” 
Request.Cookies(“User”)(“PWD”) = “<% = Request(“Password”) %>” 
Request.Cookies(“User”).Path = “/adminstuff” ‘Only applies to admin pages 
... 


  现在,在用户从adminstuff目录或其子目录请求的每个页面中,都可以找到这个cookie。假如它不存在,可以将用户重定向到注册页面:

If (Request.Cookies(“User”)(“UID”) <> “alexhomer”) _ 
Or (Request.Cookies(“User”)(“PWD”) <> “secret”) Then 
Response.Redirect “login.asp?UserName=” & Request.Cookies(“User”)(“UID”) 
End If 
... 


  由于把cookie中的用户名放在Response.Redirect的URL查询字符串中,假如在口令输入时出现错误且希望用户不必重新键入用户名,可以在login.asp页面中使用它:

<FORM ACTION=”check_user.asp” METHOD=”POST”> 
<INPUT TYPE=”TEXT” NAME=”UserName” 
VALUE=”<% = Request.QueryString(“UserName”) %>”><P> 
<INPUT TYPE=”SUBMIT” VALUE=”LOGIN”> 
</FORM> 


  2) 修改现有的cookie
  可以使用ASP修改现有的cookie,但不能只修改cookie中的一个值。当更新一个在Response.Cookies集合中的Cookie时,现有的值将丢失。我们可以用如下代码创建一个cookie,可以使用:

Response.Cookies(“VisitCount”)(“StartDate”) = dtmStart 
Response.Cookies(“VisitCount”)(“LastDate”) = Now 
Response.Cookies(“VisitCount”)(“Visits”) = CStr(intVisits) 
Response.Cookies(“VisitCount”).Path = “/” ‘Apply to entire site 
Response.Cookies(“VisitCount”).Expires = DateAdd(“m”,3,Now) 


  假如想要更新Visits和LastDate的值,必须先不需改变的所有值,然后重写整个的cookie:

datDtart = Response.Cookies(“VisitCount”)(“StartDate”) 
intVisits = Response.Cookies(“VisitCount”)(“Visits”) 
Response.Cookies(“VisitCount”)(“StartDate”) = dtmStart 
Response.Cookies(“VisitCount”)(“LastDate”) = Now 
Response.Cookies(“VisitCount”)(“Visits”) = Cstr(intVisits) 
Response.Cookies(“VisitCount”).Path = “/” 
Response.Cookies(“VisitCount”).Expires = DateADD(“m”,3,Now + 1)

且对于几乎所有的其他Response方法和属性,应该在写入任何内容(即打开<HTML>标记或任何文本或其他的HTML)到响应之前完成这个工作。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com