用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="http://xxx.xxx.xxx/counter.asp?id=abc&num=6&style=1"></script >
其中id=abc表示使用者名稱為abc,那麼要建立counter/abc.txt存放計數值;
num=6為計數器的顯示位元;
style=1為計數器風格,建立counter/style1/0~9.gif即可,可以增加多種風格。
原始碼如下:
<%
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
style="1"
else
style=request("style")
end 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
%>