注册 登录
编程论坛 ASP技术论坛

网站访问统计

skybolt 发布于 2008-09-11 17:56, 1003 次点击
index.asp内容:
网站统计

<%
Function rstj()
 dim fso,f1,ts,s
 Const ForReading=1
 Set fso=CreateObject("Scripting.FileSystemObject")
 Set ts=fso.OpenTextFile(Server.MapPath("rstj.txt"),ForReading,true,-2)
 s=ts.Readline
 ts.close
 set fso=createobject("scripting.filesystemobject")
 set f1=fso.createtextfile(server.mappath("rstj.txt"),true,true)
 f1.writeline s+1
 f1.close
 Set ts=fso.OpenTextFile(Server.MapPath("rstj.txt"),ForReading,true,-2)
 s=ts.Readline
 rstj=s
 ts.close
End Function
%>

您是第<%=rstj%>位访问的朋友

rstj.txt 内容
0

这是一个简单的网页流量统计文件,如何修改成只有第一次访问它才加1,刷新不加?

[[it] 本帖最后由 skybolt 于 2008-9-11 20:11 编辑 [/it]]
8 回复
#2
yms1232008-09-11 20:39
那就只能更改记录点击次数为记录IP数
#3
multiple19022008-09-11 23:07
或者写Cookie或者Session,总之是一个和访问统计这个具体问题关系不大的问题。
#4
skybolt2008-09-12 08:13
昨天好好想了一下,问题已解决
网站统计
index.asp源代码修改如下,可以防止刷新。
<%
Function rstj()
 dim fso,f1,ts,s
 Const ForReading=1
 Set fso=CreateObject("Scripting.FileSystemObject")
 Set ts=fso.OpenTextFile(Server.MapPath("rstj.txt"),ForReading,true,-2)
 s=ts.Readline
 ts.close
 set fso=createobject("scripting.filesystemobject")
 set f1=fso.createtextfile(server.mappath("rstj.txt"),true,true)

 if session("visited")<>"yes" then  '判断是否为初次访问
 f1.writeline s+1      '是,则计数器加1
 session("visited")="yes"  '将此用户标记为已访问
 else  '不是
 f1.writeline s '仍然输出原来的数字  
 end if
 
 f1.close
 Set ts=fso.OpenTextFile(Server.MapPath("rstj.txt"),ForReading,true,-2)
 s=ts.Readline
 rstj=s
 ts.close
End Function
%>

您是第<%=rstj%>位访问的朋友
#5
skybolt2008-09-12 08:20
回复 3# multiple1902 的帖子
有时候真的不喜欢你这个版主,每次都不帮我修改源代码,浪费我很多时间。但是,他这种友善的提示还是能让我少走许多弯路。感谢!
#6
sunfishy2008-09-12 09:32
呵呵.重点在思路!.
#7
zhuzhanjun2008-09-12 10:55
错误类型:
Microsoft VBScript 运行时错误 (0x800A003E)
输入超出了文件尾
/KEN_TEST/Untitled-1.asp, 第 7 行


我用了显示这个错误啊。甚么原因啊

Function rstj()
dim fso,f1,ts,s
Const ForReading=1
Set fso=CreateObject("Scripting.FileSystemObject")
Set ts=fso.OpenTextFile(Server.MapPath("rstj.txt"),ForReading,true,-2)
s=ts.Readline  ---------此处是第七行
ts.close
#8
multiple19022008-09-12 13:20
[bo][un]skybolt[/un] 在 2008-9-12 08:20 的发言:[/bo]

有时候真的不喜欢你这个版主,每次都不帮我修改源代码,浪费我很多时间。但是,他这种友善的提示还是能让我少走许多弯路。感谢!

呵呵,代码要自己写才能提高水平。别人给你思路就够了。


解答楼上的问题,估计是你的文件里一行内容都没有,这个ReadLine我不常用,一般用fso.getFile(...).OpenAsTextStream.ReadAll将全文件内容读入字符串再处理。至少我习惯这样,你试试。
#9
zhuzhanjun2008-09-12 14:13
用这个方法的话,fso.getFile(...).OpenAsTextStream.ReadAll

可以详细点解答吗?
1