这两天有好几个老的ASP网站要改,其中有要求加记数器,为图简单,就用文本文件的形式存储记数。以前用ifream的形式嵌入,不能很好的控制记数器显示的风格,现在改进了一下,可以很好的与嵌入板块风格结合了。把做的分享一下:
一、需要有三个文件:
1、Global.asa 全局应用程序文件,执行Application_Start、Session_Start事件
2、GetCount.asp 读取当前记录
3、Count.txt 存储访问数
二、代码:
1、Global.asa
1<SCRIPT LANGUAGE=VBScript RUNAT=Server>
2SUB Application_OnStart
3On Error Resume Next
4SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt
5Set oFSO=Server.CreateObject("Scripting.FileSystemObject")
6IF not oFSO.FileExists(sFilePath) THEN
7 oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
8 oFile.Write("1")
9 oFile.close
10 Application("TotalCount")=1
11ELSE
12 Set oFile = oFSO.OpenTextFile(sFilePath)
13 NCount=OFile.ReadLine
14 Application("TotalCount")=Clng(nCount)+1
15 oFile.close
16 Set oFile=oFSO.OpenTextFile(sFilePath,2)
17 oFile.Write(Application("TotalCount"))
18 oFile.close
19End IF
20err.clear
21END SUB
22</SCRIPT>
23
24<SCRIPT LANGUAGE=VBScript RUNAT=Server>
25SUB Application_OnEnd
26END SUB
27</SCRIPT>
28
29<SCRIPT LANGUAGE=VBScript RUNAT=Server>
30SUB Session_OnStart
31On Error Resume Next
32SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt
33Set oFSO=Server.CreateObject("Scripting.FileSystemObject")
34IF Application("TotalCount")=0 or Application("TotalCount")="" THEN
35'如果第一次运行网站,比如重启后,我们就需要从文件中读取出以前的计数值
36 IF not oFSO.FileExists(sFilePath) THEN
37 oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
38 oFile.Write("1")
39 oFile.close
40 Application("TotalCount")=1
41 ELSE
42 Set oFile = oFSO.OpenTextFile(sFilePath)
43 NCount=OFile.ReadLine
44 Application("TotalCount")=Clng(nCount)+1
45 oFile.close
46 Set oFile=oFSO.OpenTextFile(sFilePath,2)
47 oFile.Write(Application("TotalCount"))
48 oFile.close
49 End IF
50ELSE
51 Application("TotalCount")= Application("TotalCount")+1
52 IF not oFSO.FileExists(sFilePath) THEN
53 oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
54 oFile.Write(Application("TotalCount"))
55 oFile.close
56 ELSE
57 Set oFile=oFSO.OpenTextFile(sFilePath,2)
58 oFile.Write(Application("TotalCount"))
59 oFile.close
60 End IF
61End IF
62err.clear
63End Sub
64</SCRIPT>
65
66<SCRIPT LANGUAGE=VBScript RUNAT=Server>
67SUB Session_OnEnd
68END SUB
69</SCRIPT>
2SUB Application_OnStart
3On Error Resume Next
4SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt
5Set oFSO=Server.CreateObject("Scripting.FileSystemObject")
6IF not oFSO.FileExists(sFilePath) THEN
7 oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
8 oFile.Write("1")
9 oFile.close
10 Application("TotalCount")=1
11ELSE
12 Set oFile = oFSO.OpenTextFile(sFilePath)
13 NCount=OFile.ReadLine
14 Application("TotalCount")=Clng(nCount)+1
15 oFile.close
16 Set oFile=oFSO.OpenTextFile(sFilePath,2)
17 oFile.Write(Application("TotalCount"))
18 oFile.close
19End IF
20err.clear
21END SUB
22</SCRIPT>
23
24<SCRIPT LANGUAGE=VBScript RUNAT=Server>
25SUB Application_OnEnd
26END SUB
27</SCRIPT>
28
29<SCRIPT LANGUAGE=VBScript RUNAT=Server>
30SUB Session_OnStart
31On Error Resume Next
32SFilePath=Server.MapPath("Count.txt") '假设计数器文件在根目录下的Count目录中,文件名为Count.txt
33Set oFSO=Server.CreateObject("Scripting.FileSystemObject")
34IF Application("TotalCount")=0 or Application("TotalCount")="" THEN
35'如果第一次运行网站,比如重启后,我们就需要从文件中读取出以前的计数值
36 IF not oFSO.FileExists(sFilePath) THEN
37 oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
38 oFile.Write("1")
39 oFile.close
40 Application("TotalCount")=1
41 ELSE
42 Set oFile = oFSO.OpenTextFile(sFilePath)
43 NCount=OFile.ReadLine
44 Application("TotalCount")=Clng(nCount)+1
45 oFile.close
46 Set oFile=oFSO.OpenTextFile(sFilePath,2)
47 oFile.Write(Application("TotalCount"))
48 oFile.close
49 End IF
50ELSE
51 Application("TotalCount")= Application("TotalCount")+1
52 IF not oFSO.FileExists(sFilePath) THEN
53 oFile=oFSO.CreateTextFile(sFilePath,true) '如果文件不存在,则创建一个文件
54 oFile.Write(Application("TotalCount"))
55 oFile.close
56 ELSE
57 Set oFile=oFSO.OpenTextFile(sFilePath,2)
58 oFile.Write(Application("TotalCount"))
59 oFile.close
60 End IF
61End IF
62err.clear
63End Sub
64</SCRIPT>
65
66<SCRIPT LANGUAGE=VBScript RUNAT=Server>
67SUB Session_OnEnd
68END SUB
69</SCRIPT>
2、GetCount.asp
1<%="document.write('" & Application("TotalCount") & "')"%>
3、需要显示计数器的地方加入,HTML也可以:
1<script type="text/javascript" src="../GetCount.asp"></script>