隨著網絡大行其道,網頁計數器也流行起來。事實上大多數網站均有網頁計數器,用以反映該網站的訪問量。計數器的來源很廣,Frontpage等網頁編輯器自帶了網頁計數器,有的站點也提供免費的計數器下載。其實熟悉了asp編程后,自己做一個計數器很容易。下面介紹一種實現方法。 計數器原理是:在第一次使用網頁時置初始值1,以后每請求網頁一次,將計數器值加1。這樣我們只要在服務器上放置一個文本文件counter.txt,文本文件的內容有計數器的值,以后每請求一次頁面,讀出文本文件的計數器的數值,加1顯示,然后再將原來的值改變為加1后的值,保存到文本文件。至于初始置1,在服務器上可先不建counter.txt,在網頁中,先判斷服務器上是否有counter.txt文件,沒有就生成counter.txt,在counter.txt中寫入1,網頁上顯示計數器值1,完成初始置1。以后每次只要到指定目錄下將counter.txt文件刪除即可置初始值。 具體操作時要有顯示數字0、1、2….9的圖像文件,0.gif、1.gif、2.gif…9.gif,文件不能太大,一般18*25即可。將你要放計數器的網頁布局設計完畢,再改成ASP文件,將下面代碼輸入到要顯示計數器的地方,使用時,程序將自動在虛擬目錄count下建立counter.txt文件。置初始值時將文件刪除即可。對了,虛擬目錄count必須給everyone有寫的權限。 <% Const ForReading = 1, ForWriting = 2, ForAppending =3 Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0 filepath=server.mappath("/count") filename=filepath+"/counter.txt" set fs=createobject("scripting.filesystemobject") if fs.fileexists(filename) then
set f=fs.getfile(filename) Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault) s=ts.readline+1 ts.close else fs.createtextfile(filename) set f=fs.getfile(filename) s=1 end if
'向counter.txt中寫數據 Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault) ts.writeline(cstr(s)) ts.close
'顯示計數器 s=cstr(s+1000000) s=mid(s,2,6) for i=1 to 6 response.write "<img src='../images/"&mid(s,i,1) &".gif' width='18' height='25'>" next
更精確一點,只要將上面的代碼略加修改,放到你的global.asa的session_onstart中,這樣,只有新用戶進入網站,計數器才會加1。已經進入網站的用戶刷新頁面,不會引起計數器計數的改變,而且不管你從哪個頁面進站,計數器都能捕捉到你。 <script language=vbscript runat=server> sub application_onstart filepath=server.mappath("/count") filename=filepath+"/counter.txt" set fs=createobject("scripting.filesystemobject") if not fs.fileexists(filename) then fs.createtextfile(filename) set f=fs.getfile(filename) s=1 Set ts = f.OpenAsTextStream(2, -2) ts.writeline(cstr(s)) ts.close else set f=fs.getfile(filename) Set ts = f.OpenAsTextStream(1, -2) s=ts.readline+1 ts.close end if application(“visitor”)=s end sub
sub session_onstart session.timeout=5 application(“visitor”)=application(“visitor”)+1 set f=fs.getfile(filename) Set ts = f.OpenAsTextStream(2, -2)
ts.writeline (cstr(application(“visitor”))) ts.close end sub </script> 在網頁相應部分根據application(“visitor”)的值顯示計數器的圖像。 <% s=cstr(application("visitor")+10^6) s=mid(s,2,6) for i=1 to 6 response.write "<img src='../images/" &mid(s,i,1)&".gif' width='18' height='25'>" next %> 要顯示n位計數器只要將上面代碼改為: <% s=cstr(application(“visitor”)+10 ^n) s=mid(s,2,n) for I=1 to n response.write "<img src='../images/" &mid(s,i,1)&".gif' width='18' height='25'>" next %> 這樣要得到8位計數器,只要加上n=8即可。 要是覺得每次有用戶進入網站,均對counter.txt寫入太頻繁,可以在session_onstart中設置,在application (“visitor”)為十的倍數時將計數值寫進counter.txt。 怎么樣?現在就動手吧!