摘要:
自己的网站一直在使用别人提供的免费统计,如51YES,ITSUN,1TONG,51.LA,ADMIN88,50BANG等等,其中有很不错的统计系统,但免费归免费,这些服务器由于承受的负载都很大,偶尔还是会挂机的,一挂一般都是半天以上;况且有一些统计系统是不准确的.关键字:
ASP 统计 正文:
序
自己的网站一直在使用别人提供的免费统计,如51YES,ITSUN,1TONG,51.LA,ADMIN88,50BANG等等,其中有很不错的统计系统,但免费归免费,这些服务器由于承受的负载都很大,偶尔还是会挂机的,一挂一般都是半天以上;况且有一些统计系统是不准确的(我曾经在站上一起放了5个统计代码,几天下来,差距还是比较大的,相对而言,51YES,51.LA等是比较准确的,而50BANG就逊色多了……)。由此,我想何不自己写个简洁但实用的统计程序呢?放在自己的服务器上,只要你的服务器没挂,你的统计就会一切OK。
要求不高,文件不大,够用即可。当然我写的这个程序(ASP)在功能上不和已经较完善的商业版的统计系统作比较,仅供初学者或入门者作个参考(高手可以离开了,呵呵~~)。
正文
一、程序功能:
1、统计网站当前在线人数,可设置在线时长。
2、统计今日IP,今日PV;昨日IP,昨日PV;前日IP,前日PV。
3、有效统计天数;总访问量,总IP;平均访问量,平均IP。
4、统计用户的操作系统,浏览器,活跃时间,IP,当前位置,PV值。
5、当前在线IP列表;受访页面点击排行;来路统计。
6、程序可初始化统计。
二、数据库设计
建立表IP(ID,IP,DLIP,STARTIME,LASTIME,THISDATE,BROWSER,URL,N)
建立表CNT(ID,TOTALIP,TOTALPV,DAY2IP,DAY2PV,YESDAYIP,YESDAYPV,STARTDAY)
建立表URLS(URL,N,THISDATE)
建立表COMES(VCOME,N,VLAST,THISDATE)
三、统计代码的编写
数据库的连接文件conn.asp
其代码如下:
<%
Dim conn,sqlstr,db
更改数据库名字
db="inc/#counterfrom_cn-pn.com.mdb"
set conn = Server.CreateObject("ADODB.Connection")
sqlstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open sqlstr
关闭数据库
function closedb
conn.close
set conn=nothing
end function
设置删除在线数据表中多少分钟内不活动用户
dim kicktime
kicktime=30
来路中去掉自己站来源
dim ownsitekey,ownsiteurl
ownsitekey="cn-pn.com" 自己站顶级域名
ownsiteurl="www.cn-pn.com" 显示
%>
----------------------------------------------------------
统计文件:online.asp
其代码如下:
<!--#include file="inc/conn.asp" -->
<!--Powered by flymorn,www.cn-pn.com-->
<%
Response.Expires = 0 立即过时,防漏统计
判断是否清空昨天的IP数据,保留当天数据
sql="Select top 1 thisdate from ip"
set rs=conn.execute(sql)
If rs.eof and rs.bof Then
Else
date1=rs(0)
if cstr(date1)<>cstr(date) then
取值
sql1="select * from cnt where id =1"
set rs1=server.createobject("adodb.recordset")
rs1.open sql1,conn,1,1
day2ip=rs1("yesdayip")
day2pv=rs1("yesdaypv")
rs1.close
set rs1=nothing
yesdayip=todayip() 函数取值
yesdaypv=todaypv() 函数取值
更新
sql2="update cnt set day2ip="&day2ip&",day2pv="&day2pv&",yesdayip="&yesdayip&",yesdaypv="&yesdaypv&",
totalip=
[1][2][3][4][5][6][7][8][9][10]