这两天有好几个老的ASP网站要改,其中有要求加记数器,为图简单,就用文本文件的形式存储记数。以前用ifream的形式嵌入,不能很好的控制记数器显示的风格,现在改进了一下,可以很好的与嵌入板块风格结合了。把做的分享一下:
一、需要有三个文件:
1、Global.asa 全局应用程序文件,执行Application_Start、Session_Start事件
2、GetCount.asp 读取当前记录
3、Count.txt 存储访问数
二、代码:
1、Global.asa
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnStart
On Error Resume Next
SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt
Set oFSO=Server.CreateObject("Scripting.FileSystemObject")
IF not oFSO.FileExists(sFilePath) THEN
oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
oFile.Write("1")
oFile.close
Application("TotalCount")=1
ELSE
Set oFile = oFSO.OpenTextFile(sFilePath)
NCount=OFile.ReadLine
Application("TotalCount")=Clng(nCount)+1
oFile.close
Set oFile=oFSO.OpenTextFile(sFilePath,2)
oFile.Write(Application("TotalCount"))
oFile.close
End IF
err.clear
END SUB
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnEnd
END SUB
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Session_OnStart
On Error Resume Next
SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt
Set oFSO=Server.CreateObject("Scripting.FileSystemObject")
IF Application("TotalCount")=0 or Application("TotalCount")="" THEN
'如果第一次运行网站,比如重启后,我们就需要从文件中读取出以前的计数值
IF not oFSO.FileExists(sFilePath) THEN
oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
oFile.Write("1")
oFile.close
Application("TotalCount")=1
ELSE
Set oFile = oFSO.OpenTextFile(sFilePath)
NCount=OFile.ReadLine
Application("TotalCount")=Clng(nCount)+1
oFile.close
Set oFile=oFSO.OpenTextFile(sFilePath,2)
oFile.Write(Application("TotalCount"))
oFile.close
End IF
ELSE
Application("TotalCount")= Application("TotalCount")+1
IF not oFSO.FileExists(sFilePath) THEN
oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
oFile.Write(Application("TotalCount"))
oFile.close
ELSE
Set oFile=oFSO.OpenTextFile(sFilePath,2)
oFile.Write(Application("TotalCount"))
oFile.close
End IF
End IF
err.clear
End Sub
</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Session_OnEnd
END SUB
</SCRIPT>
2、GetCount.asp
<%="document.write('" & Application("TotalCount") & "')"%>
3、需要显示计数器的地方加入,HTML也可以:
<script type="text/javascript" src="../GetCount.asp"></script>
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛