VBScript cookie到期

时间:2011-10-07 13:19:11

标签: cookies vbscript asp-classic

我正在研究一些我继承的旧代码。 index.asp文件顶部有VB脚本,用于在登录时设置COOKIE。看看代码,好像cookie应该在 Date()(我假设是在同一天)到期。但是,当我查看今天创建的Cookie时,它将于10/7 / 2041 到期。我的目标是让cookie在7天后到期。提前谢谢。

<%@ LANGUAGE=VBScript %>
<% Option Explicit %>
<%
  Response.Buffer=true
  On Error Resume Next
%>

<%
Dim cookieECP
Dim fldIAccept
cookieECP=Request.Cookies("ACIntra")
fldIAccept=Request.Form("fldIAccept")
if cookieECP="ON" then
  Server.Transfer("/default.asp")
elseif fldIAccept="Y" then
  Response.Cookies("ACIntra")="ON"
  Response.Cookies("ACIntra").Expires = Date()
  Server.Transfer("/default.asp")
end if
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

2 个答案:

答案 0 :(得分:2)

Date()是ASP中的当前日期。也许你的cookie在网站上的其他地方更新了? 要在7天后过期,说明将是:

Response.Cookies("ACIntra").Expires = Now() + 7

我建议您清除浏览器中的所有Cookie,并让您的浏览器设置为在设置新Cookie时询问您。 IE有此选项,它允许您查看服务器要在浏览器中设置的cookie /值 这允许您进行调试。

另一个选择是您的服务器设置了错误的日期,但这有点牵强。

HTH 埃里克

答案 1 :(得分:2)

您还可以使用dateAdd进行更多控制。

Response.Cookies("ACIntra").Expires = DateAdd("d",7,date())

采用三个参数 - 您要添加的inteval类型(“d”=天),这些参数的数量 间隔(负减去而不是添加),以及要添加的基本日期/时间对象。

您可以使用date()now()之一; date获取当前服务器日期,now也获取当前服务器日期和时间戳。