1
11.3 计数器
11.3.1 轻松制作计数器
11.3.2 初学网页浏览次数统计
11.3.3 深入网页浏览次数统计
2
11.3 计数器
11.3.1 轻松制作计数器计数器是一个很常见的网页应用。以往,计数器都是利用 CGI
的功能来完成,较为复杂。现在,利用 ASP就可以简简单单地做出计数器的功能。本节将介绍文字计数器和图形计数器,并介绍 ASP
的内置组件 Counters的使用。
首先,我们来看一个简单的文字型计数器范例,程序
textcounter1.asp代码如下:
<!--textcounter1.asp-->
<%
Application.Lock
Application("Counter")=
Application("Counter")+1
Application.UnLock
%>
<html>
<head>
<title>文字计数器测试 1</title>
</head>
<body>
<h2 align="center"><b>欢迎浏览本网站
</b></h2>
<p align="center"><img border="0" src=
"dhs.jpg"width="300" height="180"></p>
<h2><p align="center">您是本站第 &nbsp;
<font color="#ff0000"> <%=Application
("counter")%></font>&nbsp;位贵宾! </p>
</h2>
</body>
</html>
3
11.3 计数器
11.3.1 轻松制作计数器说明,( 1)本程序利用 Application(“Counter”)这个变量来累计浏览次数。
( 2)只要服务器不关机,这个方法就没什么问题。但是若服务器重新开机的话,Application(“Counter”)变量又会从 0开始累加,执行结果如图 a与图 b所示。
刷新
4
11.3 计数器
11.3.1 轻松制作计数器在上述范例中,使用 Application变量来计数,是一个既快又简单的方法,但它的限制是服务器不能关机。接下来我们要介绍的方法是使用 ASP内置的 Counters组件,这个组件提供计数的功能。由于计数的结果储存于文件中,就算是服务器重新开机也没问题了。
该范例程序代码 textcounter2.asp如下:
<!--textcounter2.asp-->
<%
set counter=Server.CreateObject("MSWC.Counters")
counter.Increment(counts)
%>
<html>
<head><title>文字计数器测试 2</title></head>
<body>
<h2 align="center"><b>欢迎浏览本网站 </b></h2>
<p align="center"><img border="0" src="dhs.jpg" width="300" height="180"></p>
<h2><p align="center">您是本站第 &nbsp;
<font color="#ff0000"><%=counter.Get(counts)%></font>&nbsp;位贵宾! </p> </h2>
</body>
</html>
5
11.3 计数器
11.3.1 轻松制作计数器说明:
( 1)首先,创建一个 Counters的对象,方法如下:
set counter=Server.CreateObject("MSWC.Counters")
( 2) Counters组件有四个方法,如下:
● Get方法,counter.Get(variable),取得 variable计数值
● Increment方法,counter.Increment(variable),递增 variable计数值
● Remove方法,counter.Remove(variable),删除 variable计数值
● Set方法,counter.Set(variable,value),直接指定 variable的计数值
( 3)在本范例中,就是使用 Increment方法来计数。
6
11.3 计数器
11.3.1 轻松制作计数器执行结果和上例一样,如下图 a与图 b所示:
刷新图 a 图 b
7
11.3 计数器
11.3.1 轻松制作计数器接下来介绍图形计数器的制作方法 。 原理很简单,首先准备
0~9十个数字的图形,在本范例中十个图形文件分别为 0.jpg、
1.jpg,…,9.jpg。 取得计数结果后,再显示出相对应的数字图形文件就行了 。 制作图形计数器的程序代码 graphcounter1.asp如下:
<!--graphcounter1.asp-->
<%
Application.Lock
Application("Counter")=Application
("Counter")+1
Application.UnLock
Sub gcounter
counts=Application("Counter")
digits=5
For i=digits-1 to 0 STEP -1
temp=Fix(counts/10^i)
response.write "<img src=" &
temp & ".jpg></img>"
counts=counts-temp*10^i
Next
End Sub
%>
<html>
<head>
<title>图形计数器测试 1</title>
</head>
<body>
<h2 align="center"><b>欢迎浏览本网站 </b></h2>
<p align="center"><img border="0"
src="dhs.jpg"
width="300" height="180"></p>
<h2><p align="center">您是本站第
<%Call gcounter%>位贵宾! </p>
</font>
</h2>
</body>
</html>
8
11.3 计数器
11.3.1 轻松制作计数器说明:
( 1)本程序使用 Application("Counter")变量来累加计数结果。
( 2)调用 gcounter子程序来显示出数字图形,gcounter子程序的作法如下:
以 5位数的数字为例,利用 For循环及 <img>标记将每个位数的数字图形显示出就可以了 。 以 12345这个数为例,最左边的数为 1,
也就是 (12345/104)的整数部分,第二个数为 2,也就是 (12345-
1× 104(/103的整数部分 。 本程序就是用这个方法依次取出数字 。
( 3) Fix函数可用来取一个数的整数部分。
( 4) digits变量可以决定输出数字的位数。
9
11.3 计数器
11.3.1 轻松制作计数器执行结果如下图 a与图 b所示:
图 a 图 b
刷新
10
11.3 计数器
11.3.1 轻松制作计数器当 digits=6时执行六位数输出,执行结果如下图所示:
11
11.3 计数器
11.3.1 轻松制作计数器也可以使用 Counters组件来计数,程序 graphcounter2.asp清单如下:
<!--graphcounter2.asp-->
<%
set
counter=Server.CreateObject("MS
WC.Counters")
counter.Increment(counts)
Sub gcounter
counts=CInt(counter.Get(counts))
digits=5
For i=digits-1 to 0 STEP -1
temp=Fix(counts/10^i)
response.write "<img src=" &
temp& ".jpg></img>"
counts=counts-temp*10^i
Next
End Sub
%>
<html>
<head>
<title>图形计数器测试 2</title>
</head>
<body>
<h2 align=“center”><b>欢迎浏览本网站 </b></h2>
<p align="center"><img border="0"
src="dhs.jpg" width="300"
height="180"></p>
<h2><p align="center">您是本站第
<%Call gcounter%>位贵宾! </p>
</h2>
</body>
</html>
12
11.3 计数器
11.3.1 轻松制作计数器本例的执行结果和前一个范例是一样的,执行结果如下图所示 。
单击,刷新,按钮计数器会累加计数结果,这里就不再列出 。
计数器是网站上一个很基础的应用,以计数器为基础,还可以做出如在线人数统计,各网页浏览次数统计等应用 。 在下小节中,
我们将介绍网页浏览次数统计的范例 。
13
11.3 计数器
11.3.2 初学网页浏览次数统计对一个网站的站长而言,站上网页的累计浏览次数,是一项很有用的信息。通过浏览次数的统计,就可以看出用户的偏好,
提供网站改进发展的方向。本小节将介绍一个简单的网页浏览次数统计范例。
本范例所使用的文件如下:
( 1) frameset.htm:框架页主文件,本范例使用的是一个一行两列的框架页。
( 2) pagecount.asp:累计浏览次数
( 3) menu.htm:左框架选取
( 4) mainFrame.htm主框架
( 5) main.asp,page1.asp,page2asp,page3.asp,page4.asp、
page5.asp:这些文件用来当作测试网页,其目录放在左框架 menu.htm中,结果显示在主框架 mainFrame.htm中。
( 6) allcount.asp:显示所有网页的浏览次数
14
11.3 计数器
11.3.2 初学网页浏览次数统计下面列出各程序源代码:
frameset.htm:框架集主文件:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>框架页主文件 </title>
</head>
<frameset rows="*" cols="154,*" framespacing="1" border="2"
bordercolor="#000000">
<frame src="menu.htm" name="leftFrame" scrolling="NO" noresize>
<frame src="mainFrame.htm" name="mainFrame">
</frameset>
<noframes><body>
</body></noframes>
</html>
15
11.3 计数器
11.3.2 初学网页浏览次数统计程序 pagecount.asp清单:
<!--pagecount.asp-->
<%
set pcnt=Server.CreateObject("MSWC.PageCounter")
pcnt.PageHit
%>
说明:
( 1)我们使用 ASP的默认组件 PageCounter来做网页计数。这个组件没有属性,有三个方法:
* Hits([passInfo])
PassInfo为网页的虚拟路径,这个方法返回网页被浏览的次数。若 PassInfo省略的话,则返回目前网页被浏览的次数。
16
11.3 计数器
11.3.2 初学网页浏览次数统计说明:
* PageHit
将目前网页的浏览次数增加一次。 PageCounter组件并不会自动累加,我们必须使用 PageHit方法手动累加。
* Reset([PassInfo])
PassInfo代表网页的虚拟路径,这个方法将网页的浏览次数设为 0。若未指定 PassInfor,则将目前网页的浏览次数设为 0。
( 2) pagecount.asp这个文件就是把 PageCounter组件取出,并将目前网页的浏览次数加 1。这个文件必须被包括在每个网页的开头,
如下面的 main.asp,page1.asp,page2asp,page3.asp,page4.asp、
page5.asp等文件代码所示。
17
11.3 计数器
11.3.2 初学网页浏览次数统计
main.asp文件代码如下:
<!--main.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是首页 </h2>
<hr>
本页累计浏览次数,<% =pcnt.Hits()%>
</center>
说明:
这个网页一开头就使用 <!--#include file="pagecount.asp“>将
pagecount.asp包括进来。如此一来当用户浏览这个网页时,浏览次数就会自动累加。
18
11.3 计数器
11.3.2 初学网页浏览次数统计
page1.asp文件代码如下:
<!-- page1.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页一 </h2>
<hr>
本页累计浏览次数,<% =pcnt.Hits()%>
</center>
page2asp文件代码如下:
<!--page2.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页二 </h2>
<hr>
本页累计浏览次数,<% =pcnt.Hits()%>
</center>
19
11.3 计数器
11.3.2 初学网页浏览次数统计
page3.asp文件代码如下:
<!--page3.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页三 </h2>
<hr>
本页累计浏览次数,<% =pcnt.Hits()%>
</center>
page4.asp文件代码如下:
<!--page4.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页四 </h2>
<hr>
本页累计浏览次数,<% =pcnt.Hits()%>
</center>
20
11.3 计数器
11.3.2 初学网页浏览次数统计
page5.asp文件代码如下:
<!--page5.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页五 </h2>
<hr>
本页累计浏览次数,<% =pcnt.Hits()%>
</center>
allcount.asp文件代码如下:
<!--allcount.asp-->
<!--#include file="pagecount.asp"-->
<h2 align=center>本网站各网页浏览次数统计 </h2>
<hr size="2" noshade>
<center>
<table border="1" cellpadding="1" cellspacing="0"
bordercolor="#666666">
21
11.3 计数器
11.3.2 初学网页浏览次数统计
allcount.asp文件代码 (续 )如下:
<tr>
<td align=center>网页 </td>
<td align=center>浏览次数 </td>
</tr>
<tr>
<td><div align="center">首页 </div></td>
<td align=center><%=pcnt.Hits("/chapter11-03/pages/main.asp")%></td>
</tr>
<tr>
<td><div align="center">测试网页一 </div></td>
<td align=center><%=pcnt.Hits("/chapter11-03/pages/page1.asp")%></td>
</tr>
<tr>
<td><div align="center">测试网页二 </div></td>
<td align=center><%=pcnt.Hits("/chapter11-03/pages/page2.asp")%></td>
</tr>
22
11.3 计数器
11.3.2 初学网页浏览次数统计
allcount.asp文件代码 (续 )如下:
<tr><td><div align="center">测试网页三 </div>
<td align=center><%=pcnt.Hits("/chapter11-03/pages/page3.asp")%></td></tr>
<tr><td><div align="center">测试网页四 </div>
<td align=center><%=pcnt.Hits("/chapter11-03/pages/page4.asp")%></td></tr>
<tr><td><div align="center">测试网页五 </div>
<td align=center><%=pcnt.Hits("/chapter11-03/pages/page5.asp")%></td></tr>
<tr><td><div align="center">本页 </div></td>
<td align=center><%=pcnt.Hits()%></td></tr>
</table></center>
23
11.3 计数器
11.3.2 初学网页浏览次数统计说明:
( 1)这个网页也列入统计,所以一开始也要包括 pagecount.asp
文件。
( 2)使用 PageCounter组件的 Hits方法,取得各网页的浏览次数并显示出。需要注意的是,Hits方法的参数是网页的虚拟路径。
menu.htm:左框架
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>左框架 </title>
</head>
24
11.3 计数器
11.3.2 初学网页浏览次数统计
menu.htm:左框架 (续 )
<body>
<div align=“center”><a href=“main.asp” target=“mainFrame”>首页
</a><br><br>
<a href="page1.asp" target="mainFrame">测试网页一 </a><br><br>
<a href="page2.asp" target="mainFrame">测试网页二 </a><br><br>
<a href="page3.asp" target="mainFrame">测试网页三 </a><br><br>
<a href="page4.asp" target="mainFrame">测试网页四 </a><br><br>
<a href="page5.asp" target="mainFrame">测试网页五 </a><br><br>
<a href="allcount.asp" target="mainFrame">本站浏览次数统计 </a>
</div>
</body>
</html>
25
11.3 计数器
11.3.2 初学网页浏览次数统计
mainFrame.htm主框架
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>主框架 </title>
</head>
<body>
<img src="../images/zhishi.jpg" width="100" height="150"
align=“absbottom”>单击左侧框架中目录,便可在本主框架查看不同网页的浏览次数 !
</body>
</html>
26
11.3 计数器
11.3.2 初学网页浏览次数统计以上我们已将本范例所有文件的源代码写出,现在看一下其执行结果。首先,在 IE浏览器中浏览框架页主文件 frameset.htm,如下图所示。
27
11.3 计数器
11.3.2 初学网页浏览次数统计单击“首页”测试页,显示“首页”的累计浏览次数,如下图所示。单击“刷新”按钮或左框架中的
“首页”,主框架中显示的该页累计浏览次数会增加。
28
11.3 计数器
11.3.2 初学网页浏览次数统计单击其它测试页,会显示相应页的累计浏览次数,
如单击“测试网页三”,显示效果如下图所示。
29
11.3 计数器
11.3.2 初学网页浏览次数统计单击“本站浏览次数统计”,显示本网站各网页浏览次数统计,效果如下图所示。
30
11.3 计数器
11.3.3 深入网页浏览次数统计本范例是上小节范例的深入版,可以统计每日的浏览次数,更能记录各时段的次数,提供给网站站长更详尽的信息。本范例主要是利用数据库来记录各项统计结果,这就要求首先建立一个数据库,如本例在
SQL Server 2000创建一个,WebDB”数据库,随后在该数据库中建立一个数据表 (Table),如本例建立的数据表为“网页计数”。该表的定义见附录 images中图
“网页计数”所示,SQL脚本文件见附录 SQL脚本文件中“网页计数,sql”,注意:“网页计数”表中的
“网页 0”、“网页 1”、“网页 2”、“网页 3”、“网页 4”、
“网页 5”等几个字段的默认值均为 (0)。
31
11.3 计数器
11.3.3 深入网页浏览次数统计所使用的“网页计数”表如下图所示。
第一记录数据日期栏为,TOTAL”,用来表示所记录的是累计浏览次数。在时间栏中,0表示 0~4时,4
表示 4~8时,依此类推,而 24则表示本日的累计次数。
32
11.3 计数器
11.3.3 深入网页浏览次数统计本范例所使用的文件和上个范例差不多,介绍如下:
( 1) frameset.htm:框架页主文件,本范例使用的是一个一行两列的框架页。
( 2) pagecount.asp:内含 PageCount这个子程序,用来累计浏览次数
( 3) menu.htm:左框架选取
( 4) mainFrame.htm主框架
( 5) main.asp,page1.asp,page2.asp,page3.asp,page4.asp、
page5.asp:这些文件用来当作测试网页,其目录放在左框架
menu.htm中,结果显示在主框架 mainFrame.htm中。
( 6) allcount.asp:显示各网页浏览次数
( 7) timecount.asp:显示各时段浏览次数下面就分别列出所有用到的程序代码清单:
33
11.3 计数器
11.3.3 深入网页浏览次数统计程序 pagecount.asp清单:
<%
Sub PageCount(PageNo)
hournow=Int(Hour(Now)/4)*4
PName="网页 " & PageNo
Application.Lock
set dbconn=server.createobject("adodb.connection")
dbconn.open "Driver={SQL Server};Database=WebDB;
Server=(Local); uid=sa;pwd="
SQL="select * from 网页计数 Where 日期 ='" & Date & "' And 时间 =" &
hournow
set dbRS=dbConn.Execute(SQL)
If dbRS.EOF Then
For i=0 to 24 Step 4
SQL="Insert into 网页计数 (日期,时间 ) Values('" & Date & "'," & i & ")"
dbConn.Execute(SQL)
Next
End If
34
11.3 计数器
11.3.3 深入网页浏览次数统计程序 pagecount.asp清单 (续 ):
yesterday=DateAdd("d",-1,Date)
SQL="select * from 网页计数 Where 日期 ='" & yesterday & "'"
set dbRS=dbConn.Execute(SQL)
If dbRS.EOF Then
For i=0 to 24 Step 4
SQL="Insert into 网页计数 (日期,时间 ) Values('" & yesterday & "'," & i
& ")"
dbConn.Execute(SQL)
Next
End If
SQL=“UpDate 网页计数 Set,& PName &,=” & PName &,+1 Where 日期
='" & Date & "' And (时间 =" & hournow & ")"_
dbConn.Execute(SQL)
SQL=“UpDate 网页计数 Set,& PName &,=” & PName &,+1 Where 日期
='" & Date & "' And (时间 =24)"_
dbConn.Execute(SQL)
35
11.3 计数器
11.3.3 深入网页浏览次数统计程序 pagecount.asp清单 (续 ):
SQL=“UpDate 网页计数 Set,& PName &,=” & PName &,+1 Where
日期 ='TOTAL'"
dbConn.Execute(SQL)
Application.Unlock
dbRS.Close
dbConn.Close
End Sub
%>
说明:
( 1)子程序的参数为,用来分辨所要计数的网页。 0表示首页,1
表示测试网页一,2表示测试网页二,依此类推。
( 2) hournow用来决定表中的时间栏。若时间是 4~8时,则将小时数除以 4,取整数再乘以 4,就得到 4。
36
11.3 计数器
11.3.3 深入网页浏览次数统计说明:
( 3)判断是否需添加数据并累计次数,流程如下图所示。
37
11.3 计数器
11.3.3 深入网页浏览次数统计以下是程序 allcount.asp的清单:
<!--allcount.asp-->
<!--#include file="pagecount.asp"-->
<h2 align=center>本网站各网页浏览次数统计 </h2>
<hr>
<center>
今天日期,<%=Date%>&nbsp;&nbsp;现在的时间为,<%=Time%>
<br>
<table border=1>
<td align=center>网页 <td align=center>本日浏览次数累计 <td align=center>
昨日浏览次数累计 <td align=center>累计总浏览次数 <tr>
<%
dim PageName
PageName=Array(“首页”,“测试网页一”,“测试网页二”,“测试网页三”,“测试网页四 ","测试网页五 ")
Application.Lock
set dbconn=server.createobject("adodb.connection")
dbconn.open "Driver={SQL Server};Database=WebDB;Server=(Local);
uid=sa;pwd="
38
11.3 计数器
11.3.3 深入网页浏览次数统计说明:
( 1)本程序很简单,只是从数据库中取出本日、昨日及累计浏览次数,再将它们显示出来。
( 2)昨日的日期可用 DateAdd函数取得,DateAdd("d",-1,Date)
会返回将今日减一天后的日期,也就是昨天的日期。
以下是程序 timecount.asp清单。
<!--timecount.asp-->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<h2 align=center>本网站各时段浏览次数统计 </h2>
<hr>
<center>
今天是,<%=Date%>,现在时间,<%=Hour(Now)%>时
<%=Minute(Now)%>分 <br>
今日各时段浏览次数统计
<table border=1>
39
11.3 计数器
11.3.3 深入网页浏览次数统计以下是程序 timecount.asp清单 (续 )。
<td align=center>时段 <td align=center>首页 <td>测试网页一 <td>测试网页二
<td>测试网页三 <td>测试网页四 <td>测试网页五 <tr>
<%
dim TimeName
TimeName=Array("0-4时 ","4-8时 ","8-12时 ","12-16时 ","16-20时 ","20-24时 ")
Application.Lock
set dbconn=server.createobject("adodb.connection")
dbconn.open "Driver={SQL Server};Database=WebDB;Server=(Local);
uid=sa;pwd="
SQL="select * from 网页计数 Where 日期 ='" & Date & "' And 时间 <>24"
set dbRS=dbConn.Execute(SQL)
j=0
Do While Not dbRS.EOF
response.write "<td><b>" & TimeName(j) & "</b>“
for i=0 to 5
response.write "<td align=center>" & dbRS("网页 "&i)
Next
40
11.3 计数器
11.3.3 深入网页浏览次数统计以下是程序 timecount.asp清单 (续 )。
response.write "<tr>"
dbRS.MoveNext
j=j+1
Loop
response.write "</table>"
SQL="select * from 网页计数 Where 日期 ='" & DateAdd("d",-1,Date) & _
"' And 时间 <>24"
set dbRS=dbConn.Execute(SQL)
response.write,<hr>昨日,&DateAdd(“d”,-1,Date) &,各时段浏览次数统计
<br><table border=1>"
response.write "<td align=center>时段 <td align=center>首页 <td>测试网页一 "
&_"<td>测试网页二 <td>测试网页三 <td>测试网页四 <td>测试网页五 <tr>"
j=0
Do While Not dbRS.EOF
response.write "<td><b>" & TimeName(j) & "</b>"
for i=0 to 5
response.write "<td align=center>" & dbRS("网页 "&i)
41
11.3 计数器
11.3.3 深入网页浏览次数统计以下是程序 timecount.asp清单 (续 )。
Next
response.write "<tr>"
dbRS.MoveNext
j=j+1
Loop
Application.Unlock
dbRS.Close
dbConn.Close
%>
</table>
</center>
说明:
( 1)本程序分为两部分,第一部分显示出本日各时段浏览次数统计,
第二部分显示出昨日的统计。这两部分的程序是一样的,只是数据不同。
42
11.3 计数器
11.3.3 深入网页浏览次数统计说明:
( 2)利用 Do...Loop循环及 dbRS.MoveNext取得各记录数据,再用
For循环将各字段累计次数显示出。
以下是程序 main.asp清单。
<!--main.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是首页 </h2>
<hr>
<%
Call PageCount("0")
hournow=Int(Hour(Now)/4)*4
response.write "今天日期," & Date & "<br>"
Application.Lock
set dbconn=server.createobject("adodb.connection")
dbconn.open "Driver={SQL Server};Database=WebDB;
Server=(Local); uid=sa;pwd="
43
11.3 计数器
11.3.3 深入网页浏览次数统计程序 main.asp清单 (续 ):
SQL="Select 网页 0 From 网页计数 Where 日期 ='" & DateAdd("d",-1,Date)
& "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)
response.write "昨日浏览次数累计," & dbRS("网页 0") & "<br>"
SQL="Select 网页 0 From 网页计数 Where 日期 ='" & Date & "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)
response.write "本日浏览次数累计," & dbRS("网页 0") & "<br>"
Application.Unlock
dbRS.Close
dbConn.CLose
%>
</center>
说明:( 1)在想要计数的网页中,首先要使用 <!--#include
file="pagecount.asp"-->将 pagecount.asp包括进去。
( 2)调用 PageCount子程序执行累计功能。参数返回,0”表示本网页的累计结果会存在数据表中的“网页 0”字段。
44
11.3 计数器
11.3.3 深入网页浏览次数统计以下是程序 page1.asp,page2.asp,page3.asp,page4.asp、
page5.asp清单。
程序 page1.asp清单如下:
<!--main.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页一 </h2>
<hr>
<%
Call PageCount("1")
hournow=Int(Hour(Now)/4)*4
response.write "今天日期," & Date & "<br>"
Application.Lock
set dbconn=server.createobject("adodb.connection")
dbconn.open "Driver={SQL Server};Database=WebDB;Server=(Local);
uid=sa;pwd="
SQL="Select 网页 1 From 网页计数 Where 日期 ='" & DateAdd("d",-1,
Date) & "' And 时间 =24"
45
11.3 计数器
11.3.3 深入网页浏览次数统计程序 page1.asp清单 (续 )如下:
set dbRS=dbConn.Execute(SQL)
response.write "昨日浏览次数累计," & dbRS("网页 1") & "<br>"
SQL="Select 网页 1 From 网页计数 Where 日期 ='" & Date & "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)
response.write "本日浏览次数累计," & dbRS("网页 1") & "<br>"
Application.Unlock
dbRS.Close
dbConn.CLose
%>
</center>
程序 page2.asp清单如下:
<!--main.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页二 </h2>
<hr>
<%
46
11.3 计数器
11.3.3 深入网页浏览次数统计程序 page2.asp清单 (续 )如下:
Call PageCount("2")
hournow=Int(Hour(Now)/4)*4response.write "今天日期," & Date & "<br>"
Application.Lock
set dbconn=server.createobject("adodb.connection") dbconn.open "Driver={SQL Server};Database=WebDB;Server=(Local);
uid=sa;pwd="SQL="Select 网页 2 From 网页计数 Where 日期 ='" & DateAdd("d",-1,Date)
& "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)response.write "昨日浏览次数累计," & dbRS("网页 2") & "<br>"
SQL="Select 网页 2 From 网页计数 Where 日期 ='" & Date & "' And 时间 =24"set dbRS=dbConn.Execute(SQL)
response.write "本日浏览次数累计," & dbRS("网页 2") & "<br>"
Application.UnlockdbRS.Close
dbConn.CLose %>
</center>
47
11.3 计数器
11.3.3 深入网页浏览次数统计程序 page3.asp清单如下:
<!--main.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页三 </h2>
<hr>
<%
Call PageCount("3")
hournow=Int(Hour(Now)/4)*4
response.write "今天日期," & Date & "<br>"
Application.Lock
set dbconn=server.createobject("adodb.connection")
dbconn.open "Driver={SQL Server};Database=WebDB;Server=(Local);
uid=sa;pwd="
SQL="Select 网页 3 From 网页计数 Where 日期 ='" & DateAdd("d",-1,Date)
& "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)
response.write "昨日浏览次数累计," & dbRS("网页 3") & "<br>"
48
11.3 计数器
11.3.3 深入网页浏览次数统计程序 page3.asp清单 (续 )如下:
SQL="Select 网页 3 From 网页计数 Where 日期 ='" & Date & "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)
response.write "本日浏览次数累计," & dbRS("网页 3") & "<br>"
Application.Unlock
dbRS.Close
dbConn.CLose
%>
</center>
程序 page4.asp清单如下:
<!--main.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页四 </h2>
<hr>
<%
Call PageCount("4")
hournow=Int(Hour(Now)/4)*4
49
11.3 计数器
11.3.3 深入网页浏览次数统计程序 page4.asp清单 (续 )如下:
response.write "今天日期," & Date & "<br>"
Application.Lock
set dbconn=server.createobject("adodb.connection")
dbconn.open "Driver={SQL Server};Database=WebDB;Server=(Local);
uid=sa;pwd="
SQL="Select 网页 4 From 网页计数 Where 日期 ='" & DateAdd("d",-1,Date)
& "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)
response.write "昨日浏览次数累计," & dbRS("网页 4") & "<br>"
SQL="Select 网页 4 From 网页计数 Where 日期 ='" & Date & "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)
response.write "本日浏览次数累计," & dbRS("网页 4") & "<br>"
Application.Unlock
dbRS.Close
dbConn.CLose
%>
50
11.3 计数器
11.3.3 深入网页浏览次数统计程序 page5.asp清单如下:
<!--main.asp-->
<!--#include file="pagecount.asp"-->
<center>
<h2>这是测试网页五 </h2>
<hr>
<%
Call PageCount("5")
hournow=Int(Hour(Now)/4)*4
response.write "今天日期," & Date & "<br>"
Application.Lock
set dbconn=server.createobject("adodb.connection")
dbconn.open "Driver={SQL Server};Database=WebDB;Server=(Local);
uid=sa;pwd="
SQL="Select 网页 5 From 网页计数 Where 日期 ='" & DateAdd("d",-1,Date)
& "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)
response.write "昨日浏览次数累计," & dbRS("网页 5") & "<br>"
51
11.3 计数器
11.3.3 深入网页浏览次数统计程序 page5.asp清单 (续 )如下:
SQL="Select 网页 5 From 网页计数 Where 日期 ='" & Date & "' And 时间 =24"
set dbRS=dbConn.Execute(SQL)
response.write "本日浏览次数累计," & dbRS("网页 5") & "<br>"
Application.Unlock
dbRS.Close
dbConn.CLose
%>
frameset.htm框架页主文件代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>框架页主文件 </title>
</head>
<frameset rows="*" cols="173,*" framespacing="1" border="2"
bordercolor="#000000">
52
11.3 计数器
11.3.3 深入网页浏览次数统计
frameset.htm框架页主文件代码 (续 )如下:
<frame src="menu.htm" name="leftFrame" scrolling="NO" noresize>
<frame src="mainFrame.htm" name="mainFrame">
</frameset>
<noframes><body>
</body></noframes>
</html>
左框架 menu.htm 代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>左框架 </title>
</head>
<body>
<div align="center"><a href="main.asp" target="mainFrame">首页 </a><br><br>
<a href="page1.asp" target="mainFrame">测试网页一 </a><br> <br>
53
11.3 计数器
11.3.3 深入网页浏览次数统计左框架 menu.htm代码 (续 )如下:
<a href="page2.asp" target="mainFrame">测试网页二 </a><br><br>
<a href="page3.asp" target="mainFrame">测试网页三 </a><br><br>
<a href="page4.asp" target="mainFrame">测试网页四 </a><br><br>
<a href="page5.asp" target="mainFrame">测试网页五 </a><br><br>
<a href="allcount.asp" target="mainFrame">本站浏览次数统计 </a><br><br>
<a href=“timecount.asp” target=“mainFrame”>本站各时段浏览次数统计
</a><br><br>
</div>
</body>
</html>
mainFrame.htm主框架代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
54
11.3 计数器
11.3.3 深入网页浏览次数统计
mainFrame.htm主框架代码 (续 )如下:
<title>主框架 </title>
</head>
<body>
<img src="../images/zhishi.jpg" width="100" height="150" align="absbottom">
单击左侧框架中目录,便可在本主框架查看不同网页、不同时段,今天和昨天的浏览次数 !
</body>
</html>
以上我们已将本范例所有用到文件的源代码写出,现在看一下其执行结果。
55
11.3 计数器
11.3.3 深入网页浏览次数统计首先,在 IE浏览器中浏览框架页主文件 frameset.htm,
如下图所示。
56
11.3 计数器
11.3.3 深入网页浏览次数统计单击“首页”测试页,显示今天和昨天“首页”的累计浏览次数,如下图所示。单击“刷新”按钮或左框架中的“首页”,主框架中显示的该页今天的累计浏览次数会增加。
57
11.3 计数器
11.3.3 深入网页浏览次数统计单击其它测试页,会显示相应测试页今日和昨日的累计浏览次数,如单击“测试网页三”,显示效果如下图所示。
58
11.3 计数器
11.3.3 深入网页浏览次数统计单击“本站浏览次数统计”,显示本网站各网页本日、昨日累计浏览次数,以及累计总浏览次数,效果如下图所示。
59
11.3 计数器
11.3.3 深入网页浏览次数统计单击“本站各时段浏览次数统计”,显示本网站本日、昨日各时段,各网页累计浏览次数统计,效果如下图所示。
60
11.3 计数器
11.3.3 深入网页浏览次数统计事实上,本程序还有很大的扩充空间,例如每周浏览次数统计,每月浏览次数统计等等。此外,还可以将上述这些数字变成简单易懂的条形图来显示,尽管 ASP
没有绘图功能,但是我们可以使用 HTML中的 <img>标记,
只要先准备一个实心方块图形文件 (如 barigif),在使用
<img>时,设置好 width和 height参数,就可以显示出我们想要的条状图形。比如使用的图形文件 barigif是一个
10× 10的实心方块,如果用 <img src="bar.gif" width=10>
就可以显示出一个 10× 10的方形,只要将 height值固定,
再依数据内容来设置 width值,然后再用 HTML的表格功能将得到的长条排列好,就是我们所要的条形图了。