我做了个防止刷新的计数器,但我想让用户在重新打开IE时候,还是计数!怎么写呢?

greenbaby 2003-08-30 09:49:12
我做了个防止刷新的计数器,是利用cookies!
但是我想实现让用户在重新打开IE时候,还是计数!或者是过了10分钟后,打开计数!我不知道Expires怎么用,我让它几分钟后就过期,该怎么写呀!谢谢大家帮帮忙!

<%
dim visitors
'获取本网站在服务器上的路径
file=server.MapPath("counter.txt")

'打开文件并读出以前的来访数量
set fileacc=server.CreateObject("Scripting.FileSystemObject")
set myFile=fileacc.OpenTextFile(file)
visitors=myFile.readline
myFile.close

'增加一人,存回去
if Request.cookies("index1")="" then
visitors=visitors+1
Response.cookies("index1")="yes"
Response.Cookies("index1").Expires=date+1
end if


set myFile=fileacc.CreateTextFile(file)
myFile.WriteLine(visitors)
myFile.close
strlength=len(visitors)

'使用Response.Write方法生成Html代码
for i=1 to 8-strlength
Response.Write"<img src=images\number/0.gif>"
next


for i=1 to strlength
Response.Write "<img src=images\number/" & mid(visitors,i,1) & ".gif>"
next

set fileacc=nothing

%>
...全文
86 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenbaby 2003-08-30
  • 打赏
  • 举报
回复
用session是可以实现啦,
但是为什么用cookies不行呢??
李睿_Lee 2003-08-30
  • 打赏
  • 举报
回复
用SESSION,关闭浏览器或过二十分钟(默认,也可用Session.TimeOut来设定时间)后又能计数:
<%
dim visitors
'获取本网站在服务器上的路径
file=server.MapPath("counter.txt")
'打开文件并读出以前的来访数量
set fileacc=server.CreateObject("Scripting.FileSystemObject")
set myFile=fileacc.OpenTextFile(file)
visitors=myFile.readline
myFile.close

If Session("click")="" Then
visitors=visitors+1
Session("click")="yes"
set myFile=fileacc.CreateTextFile(file)
myFile.WriteLine(visitors)
myFile.close
end if

strlength=len(visitors)

'使用Response.Write方法生成Html代码
for i=1 to 8-strlength
Response.Write"<img src=images\number/0.gif>"
next

for i=1 to strlength
Response.Write "<img src=images\number/" & mid(visitors,i,1) & ".gif>"
next

set fileacc=nothing
%>

不足之处请指正.
greenbaby 2003-08-30
  • 打赏
  • 举报
回复
怎么我加了Response.Cookies("index1").Expires=dateadd(n,5,now)这句后,怎么还是没有反应,我怎么才知道它实现了5分钟,可以再计数了!?
yzwxjun 2003-08-30
  • 打赏
  • 举报
回复
if Request.cookies("index1")="" then
Response.cookies("index1")="yes"
Response.Cookies("index1").Expires=date+1
end if
把这几句干掉
zhangking 2003-08-30
  • 打赏
  • 举报
回复
如果重新打开 IE 的时候不计数, 那还叫"计数器"吗?
say1no2 2003-08-30
  • 打赏
  • 举报
回复
也就是说当前时间加上5分钟
say1no2 2003-08-30
  • 打赏
  • 举报
回复
DateAdd 函数
请参阅
DateDiff 函数 | DatePart 函数
要求
版本2
返回已添加指定时间间隔的日期。

DateAdd(interval, number, date)
参数
interval
必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number
必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date
必选项。Variant 或要添加 interval 的表示日期的文字。
设置
interval 参数可以有以下值:

设置 描述
yyyy 年
q 季度
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 小时
n 分钟
s 秒

说明
可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。

DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月:

NewDate = DateAdd("m", 1, "31-Jan-95")
在这个示例中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。

如果计算的日期是在公元 100 年之前,则会产生错误。

如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。

greenbaby 2003-08-30
  • 打赏
  • 举报
回复
用session该怎么写了?
greenbaby 2003-08-30
  • 打赏
  • 举报
回复
dateadd(n,5,now)
是什么意思解释一下,好吗?
我在网上找了半天也没有找到这方面的东东!
zdjack 2003-08-30
  • 打赏
  • 举报
回复
建议用session,这样实现你的功能比较容易一些。
Brookes 2003-08-30
  • 打赏
  • 举报
回复
Response.Cookies("index1").Expires=dateadd(n,5,now)
tripofdream 2003-08-30
  • 打赏
  • 举报
回复
用session
CTBOK 2003-08-30
  • 打赏
  • 举报
回复
两加判断啊,一个判断是IP的,一个判断是SESSION的,用or与and连接起来不就行了?
greenbaby 2003-08-30
  • 打赏
  • 举报
回复
怎样设置过期时间呢?
是不是这样Response.Cookies("index1").Expires=dateadd(n,5,now)?
但是怎么不对了?没有反应,也不报错!
李睿_Lee 2003-08-30
  • 打赏
  • 举报
回复
Cookies 当然是可以了,关键是要设好过期时间.

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧