用ASP建立WEB页面的计数器通常有两种简单的方法,一个是建立global.asa,另外一个是直接写一个ASP文件来进行计数。一般使用一个文档来保存浏览数量。
1、用global.asa来写计数器写一个global.asa文件,存放到虚拟目录的根目录下面,源代码如下:
<Script language ="Vbscript" Runat="server">
sub Application_onStart()
countFile=server.mappath("counter")+"/counter.txt"
set fso=Server.CreateObject("Scripting.FileSystemObject")
set file=fso.OpenTextFile("countFile")
\'读取访问数并赋给Application变量number
Application("number")=file.readLine
file.close
end sub
sub session_onStart()
If IsEmpty(Session("hasbeenConnected")) then
Application.Lock
Application("number")=Application("number")+1
Applicaiotn.Unlock
end if
Session("hasbeenConnected")=True
end sub
sub Application_onEnd()
countFile=server.mappath("counter")+"/counter.txt"
set fso=Server.CreateObject("Scripting.FileSystemObject")
set file=fso.CreateTextFile("countFile",true)
\'使用writeLine方法写入当前值
file.writeLine(Application("number"))
file.close
end sub
</script>
调用计数器时候在网页中写入<%response.Write("你是第"&number&"位访问者!")%>即可,不过调用网页也必须是ASP页面。这种方法有缺点,就是好多个人主页空间并不支持运行global.asa,即不是为用户建的虚拟目录,所以无法正确运行。
2、直接写一个counter.asp来计数我自己现在用的计数器就是这样,而且可以在任何页面中调用,调用方法是:
<scriptsrc=" >
其中id=abc表示用户名为abc,那么要建立counter/abc.txt存放计数值;
num=6为计数器的显示位数;
源代码如下:
<%
set fso=server.CreateObject("Scripting.FileSystemObject")
filepath=server.mappath("counter")+"/"+request("id")+".txt"
set temp=fso.opentextfile(filepath,1)
count=temp.readline
temp.close
if isempty(session("connected")) then
set temp=fso.opentextfile(filepath,2)
application.lock
count=count+1
temp.writeline(count)
application.unlock
temp.close
end if
set temp=nothing
set fso=nothing
session("connected")=true
numlength=len(count)
if request("num")="" then
maxnum=6
else
maxnum=cint(request("num"))
end if
if request("style")="" then
if
for i=1 TO maxnum STEP 1
If i<=maxnum-numlength then
countimage="<img src=http://xxx.xxx.xxx/counter/style"&style&"/0.gif width=15 height=20></img>"
response.write "document.write(\'"&countimage&"\');"
Else
countimage="<img src=http://xxx.xxx.xxx/counter/style"&style&"/"& mid(count,i-(maxnum-numlength),1)&".gif width=15 height=20></img>"
response.write "document.write(\'"&countimage&"\');"
End If
next
%>