頁面計數器的程序
發表時間:2024-02-14 來源:明輝站整理相關軟件相關文章人氣:
[摘要]網頁計數器DIY隨著網絡大行其道,網頁計數器也流行起來。事實上大多數網站均有網頁計數器,用以反映該網站的訪問量。計數器的來源很廣,Frontpage等網頁編輯器自帶了網頁計數器,有的站點也提供免費的計數器下載。其實熟悉了ASP編程后,自己做一個計數器很容易。下面介紹一種實現方法。計數器原理是:在第...
網頁計數器DIY
隨著網絡大行其道,網頁計數器也流行起來。事實上大多數網站均有網頁計數器,用以反映該網站的訪問量。計數器的來源很廣,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='http://www.okasp.com/images/"&mid(s,i,1)
&".gif' width='18' height='25'>"
next
%>
性急的朋友要問,你的這個計數器值顯示6位計數,如果要顯示8位計數,怎么辦?別著急,等我講完下一個例子我會給一個通式的。
這個計數器有一個缺點,就是每次刷新頁面計數器都加1,這是因為每刷新一次頁面,系統認為你重新請求頁面;而且,如果你不從主頁面進入網站,計數器不會改變計數。如果想要
更精確一點,只要將上面的代碼略加修改,放到你的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='http://www.okasp.com/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='http://www.okasp.com/images/"
&mid(s,i,1)&".gif' width='18' height='25'>"
next
%>
這樣要得到8位計數器,只要加上n=8即可。
要是覺得每次有用戶進入網站,均對counter.txt寫入太頻繁,可以在session_onstart中設置,在application
(“visitor”)為十的倍數時將計數值寫進counter.txt。
怎么樣?現在就動手吧!