专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Asp教程 » cookie的使用:Cookie使用指南 »正文

cookie的使用:Cookie使用指南

来源: 发布时间:星期四, 2009年2月12日 浏览:157次 评论:0


 尽管现在听起来cookie没有什么激动人心但实际上利用它你能实现许多有意义功能!比如说:你可以在站点上放置
个调查问答表询问访问者最喜欢颜色和字体然后根据这些定制用户web界面并且你还可以保存访问者登录密码
当访问者再次访问这个站点时不用再输入密码进行登录

  当然cookie也有些不足首先由于利用cookie功能可以编程实现些不良企图所以大多数浏览器中都有安全设定其中可以设置是否允许或者接受cookie因此这就不能保证随时能使用cookie再者访问者可能有意或者无意地删除cookie当访问者机器遇到“蓝屏”死机时或者重新格式化硬盘、安装系统后原来保存cookie将全部丢失最后些最浏览器并不能支持cookie

  利用cooklie能做什么?

  有2种使用cookie基本方式:
  1、将cookie写入访问者计算机(使用 RESPONSE 命令)
  2、从访问者计算机中取回cookie(使用 REQUEST 命令)

  创建cookie基本语法

   Response.Cookies(\"CookieName\")=value


   执行下面代码将会在访问者计算机中创建个cookie名字=VisitorName值=Ken

Response.Cookies(\"VisitorName\")=\"Ken\"


   执行下面代码将会在访问者计算机中创建个cookie名字=VisitorName值=表单中UserName

Response.Cookies(\"VisitorName\")=Request.Form(\"UserName\")


   读取cookie基本语法

   Request.Cookies(\"CookieName\")


   可以将Request值当作个变量看待执行下面代码将取回名字为KensCookiecookie值并存入变量MyVar:

MyVar=Request.Cookies(\"KensCookie\")


   执行下面代码将判断名字为KensCookiecookie值是否为“Yes”:

If Request.Cookies(\"KensCookie\")=\"Yes\" then...



   功能丰富cookie

   你可以扩展上面代码成为Cookie子关键值(CookieSubName)代码如下:

Response.Cookies(\"VisitorName\")(\"FirstName\")=\"Ken\"
Response.Cookies(\"VisitorName\")(\"LastName\")=\"Baumbach\"



   讲解例子前最后讨论2个概念:命令约定和使用到期时间





   命名约定

   同其他变量命名合适地、独特地命名cookie有利于在中前后连贯地使用它你可以使用下面1个或者2个
cookie属性进行cookie变量命名:

   域属性(Do):域属性表明cookie由哪个网站WebSite产生或者读取默认情况下cookie域属性设置为产生它网站WebSite但你
也可以根据需要改变它相关代码如下:Response.Cookies(\"CookieName\").Do = \"www.mydo.com\"

   路径属性(Path):路径属性可以实现更多安全要求通过设置网站WebSite上精确路径就能限制cookie使用范围例如:
Response.Cookies(\"CookieName\").Path = \"/dir/subdir/path\"

   使用到期时间

   通常情况下当浏览器关闭时个cookie就不存在了但是在许多时候比如下面将要讨论web站点例子我们希望能更长时间地在访问者计算机上保存cookie很幸运有这样实现思路方法下面代码就可以设置cookie使用到期时间为2010年1月1日:

Response.Cookies(\"CookieName\").Expires=#January 01, 2010#


   执行下面代码将设定cookie过期时间为“cookie创建时间+365日”:

Response.Cookies(\"CookieName\")=Date+365



   使用cookie实际例子

   现在开始讨论实际例子假设:你想做个调查每个人初次访问时需要填写好信息但是当日后再访问时就不需要再那么做利用cookie就可以非常圆满地解决这个问题而大可不必用到数据库

< %@ LANGUAGE=\"VBSCRIPT\" % >

< %

Survey=Request.Cookies(\"KensSurvey\")

If Survey =\"\" then

Response.Cookies(\"KensSurvey\")=\"x\"

Response.Cookies(\"KensSurvey\").Expires=#January 01, 2010#

Response.Redirect \"survey.asp\"

Else

\'rest of the page

End

% >


   好下面开始从头讨论上面代码

   首先设置页面并读取名字为KensSurveycookie值:

< %@ LANGUAGE=\"VBSCRIPT\" % >

< %

Survey=Request.Cookies(\"KensSurvey\")


   然后判断是否已经存在cookie值:

If Survey =\"\" then


   如果不存在 就创建并设置cookie并转到页面survey.asp 当下次访问时存在cookie值就不会再转到survey.asp 页面

Response.Cookies(\"KensSurvey\")=\"x\"
Response.Cookies(\"KensSurvey\").Expires=#January 01, 2010#
Response.Redirect \"survey.asp\"


   如果cookie已经存在那么访问者将执行页面中剩余代码:

\'rest of the page

End
%>



   例子2


   这里有另外个简单例子:当访问者第1次浏览某个站点时向他们显示欢迎信息代码如下:

< %@ LANGUAGE=\"VBSCRIPT\" % >

< %

RequestName = Request.Form(\"Name\")

RequestLeaveMeAlone = Request.Form(\"LeaveMeAlone\")

If  RequestName < >\"\" or RequestLeaveMeAlone < >\"\"  then

Response.Cookies(\"MySiteVisitorName\") = RequestName

Response.Cookies(\"MySiteVisitorName\").Expires = #January 01, 2010#

Response.Cookies(\"MySiteLeaveMeAlone\") = RequestLeaveMeAlone

Response.Cookies(\"MySiteLeaveMeAlone\").Expires = #January 01, 2010#

End

VisitorName = request.cookies(\"MySiteVisitorName\")



LeaveMeAlone = request.cookies(\"MySiteLeaveMeAlone\")

If VisitorName =\"\" and LeaveMeAlone =\"\" then

% >

< HTML > < HEAD > < /HEAD >

< body bgcolor=\"#ccffff\" text=\"black\" link=\"navy\" vlink=\"purple\" >

< DIV ALIGN=\"CENTER\" >

< form action=\"index.asp\" method=\"POST\" >

< H2 >Let\'s be friends< /H2 >

What\'s your name (leave blank and hit the Submit button you don\'t want us to know)?

< input type=\"text\" name=\"name\" >< BR >< BR >

< input type=\"hidden\" name=\"LeaveMeAlone\" value=\"x\" >

< input type=\"submit\" value=\"Submit\" >

< /FORM >

< /DIV >

< /BODY >

< %

End

If VisitorName < > \"\" then

Response.write \"Hi, \" & VisitorName & \"! I hope you are having a great day!\"

End

\'rest of the page

% >


   好现在来看看上面代码实现执行了什么首先设置页面然后检查表单变量(在同个页面中)如果表单变量存在就创建cookie并设置到期时间




< %@ LANGUAGE=\"VBSCRIPT\" % >

< %

RequestName = Request.Form(\"Name\")

RequestLeaveMeAlone = Request.Form(\"LeaveMeAlone\")

If  RequestName < >\"\" or RequestLeaveMeAlone < >\"\"  then

Response.Cookies(\"MySiteVisitorName\") = RequestName

Response.Cookies(\"MySiteVisitorName\").Expires = #January 01, 2010#

Response.Cookies(\"MySiteLeaveMeAlone\") = RequestLeaveMeAlone

Response.Cookies(\"MySiteLeaveMeAlone\").Expires = #January 01, 2010#

End


   接着读取cookie:

VisitorName = request.cookies(\"MySiteVisitorName\")
LeaveMeAlone = request.cookies(\"MySiteLeaveMeAlone\")


   如果cookie在访问者计算机上不存在就创建个表单询问相关信息:

If VisitorName =\"\" and LeaveMeAlone =\"\" then

% >

< HTML >

< HEAD >

< /HEAD >

< body bgcolor=\"#ccffff\" text=\"black\" link=\"navy\" vlink=\"purple\" >

< DIV ALIGN=\"CENTER\" >

< form action=\"index.asp\" method=\"POST\" >

< H2 >Let\'s be friends< /H2 >

What\'s your name (leave blank and hit the Submit button you don\'t want us to know)?

< input type=\"text\" name=\"name\" >< br >< br >

< input type=\"hidden\" name=\"LeaveMeAlone\" value=\"x\" >

< input type=\"submit\" value=\"Submit\" >

< /FORM >

< /DIV >

< /BODY >

< %

End


   如果cookie已经存在并且用户名字存在就显示给访问者个欢迎界面然后执行其余代码

If VisitorName < > \"\" then

Response.write \"Hi, \" & VisitorName & \"! I hope you are
having a great day!\"

End

\'rest of the page

% >


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: