分享
 
 
 

用ASP编写网站流量统计系统

王朝asp·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

在目前的网站统计系统决大部分都是CGI的,但编写起来特别复杂,而ASP学起来简单,更有和数据库结合的优点,所以结合自己曾经做过的网站统计系统,和大家探讨一下ASP编写网站统计系统。

大家都看过网易的网站统计系统,它可以统计总访问量,每日平均访问量,当日访问量,最高访问量,最高访问日期,日流量分析,月流量分析,周流量分析,浏览器分析,等等。

其实要做一个ASP的访问统计系统关键是系统表结构的设计。以及如何来采集用户的CGI变量,如何来显示用户的信息。也就是说系统的关键是两个ASP程序,统计程序和显示程序。

首先我们先看看如何来采集用户的访问信息。

我们编写访问统计需要知道用户的如下信息,访问者的IP(根据访问IP可以形成访问者IP列表),访问者的浏览器与操作系统(统计访问者的浏览器与操作系统及所有访问者浏览器与操作系统比例图),访问者的访问时间(进行日访问量分析,月访问量分析,周访问量分析),下面我们来看看用ASP的获得以上信息的语句:

1、获得访问者IP

Dim M_IP

M_IP=Request.Servervariables("REMOTE_HOST")

用上面的语句可以取得访问者的IP。

2、获得浏览器信息

Dim O_Browser,M_BrowserType

Set O_Browser=Server.Createobject("MSWC.BrowserType")

M_BrowserType=O_Browser.Browser+O_Browser.Version

3、获得访问时间

Dim M_DateTime

M_DateTime=Year(Date())&"/"&Right("0"&Month(Date()),2)&"/"Right("0"&Day(Date()),2)&"/"&Right("0"&Hour(Time()),2)&":"&Right("0"&Minute(Time()),2)&":"&Right("0"&Second(Time()),2)

4、取得用户的操作系统。

在ASP中使用如下语句可以得到访问者的http_user_agent字符串。

Dim StrUserAgent

StrUserAgent=Request.ServerVariables("HTTP_USER_AGENT")

这个字符串一般是如下格式:

Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)

上面的字符串可以说明访问者使用的操作系统是Windows98,浏览器是MSIE 4.01,但是这个字符串格式不固定,而且可以自己更改。

平常我们所见的其它一些主要的UserAgent字符串如下:

使用IE的浏览器:

Mozilla/2.0 (compatible; MSIE 3.01; Windows 95)

Mozilla/4.0 (compatible; MSIE 4.0; Windows 95);

Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)

Mozilla/4.0 (compatible; MSIE 5.0; Windows 98);

Mozilla/4.0 (compatible; MSIE 5.0b2; Windows NT)

使用NetScape的浏览器:

Mozilla/4.03 〔en〕 (Win95; I)

Mozilla/4.08 〔en〕 (WinNT; U ;Nav)

Mozilla/4.5 〔en〕 (WinNT; U)

Mozilla/3.04Gold (Win95; I)

使用Opera的浏览器:

Mozilla/4.0 (compatible; Opera/3.0; Windows 95) 3.50b10

FrontPage编辑器:

Mozilla/2.0 (compatible; MS FrontPage 3.0)

使用Sun操作系统:

Mozilla/3.01Gold (X11; I; SunOS 5.7 i86pc)

使用PowerPc的Mac机:

Mozilla/4.0 (compatible; MSIE 4.5; Mac_PowerPC)

通过分析以上字符串,我们可以找出规律,编写一个子程序来判断访问者用的是何种操作系统,又由于用ASP中的判断浏览器类型的控件需要更新Browser.ini文件,所以我们可以结合这个字符串来判断浏览器属性。

我们以什么样的方式来统计网站呢?

我们可以让用户在他的主页上加入如下语句:

<a href="http://www.abc.com/viewer.asp?userid=username"><img src="http://www.abc.com/counter.asp?userid=username"></a>上面的userid是具体哪一个用户,要注意用户和访问者不是一个概念。

通过上面的字符串我们就可以采集用户的访问数据,并给用户提供观看数据的链接。在我们看加有网易的统计系统的页面时会发现它会返回给用户一个图标,我们就可以在counter.asp中实现这个功能。

加入:response.redirect "http://www.abc.com/abc.gif"

这个语句我们可以加在统计数据采集后返回给用户。

如何设计数据表结构?

设计表结构是一项极其重要的工作,它的合理与否与程序的编制紧密相关。

一个网站统计系统应该有一个用户表,统计值表。

这个用户表也就是保留注册用户信息的表,统计值表就是记录用户的每一项统计指标值的表。在统计值的表中我们可以指定用户的统计指标,我们可把每一个指标用一个ID值来表示,这里我们简单举例。

用户表:

Table Name:regist_table

Field type

username C 用户名

password C 密码

regdate C 注册时间

值表:

Table Name:value_table

Field type

username c 用户名

id c 统计指标ID

value i

datetime c 统计指标的值

Id列表:

Table Name:id_table

Field type

id C 统计指标ID

idvalue C 统计指标的说明

有了这三个表我们就可以开始做了。

如我们可以指定以下ID

id idvalue

101 总访问量

201 1日访问量

202 2日访问量

: :

: :

231 31日访问量

要想对用户开始统计我们必须得先让用户注册,用户使用的流程如下:

填注册表->初始用户的value表(把对应的ID加入)->把注册信息反馈给用户->用户在自己的页面上加入链接->开始统计

能采集数据我们都能采到了,那么我们就开始编制ASP的统计页面。

这一页我们叫计数页,counter.asp

这段asp代码我们需要让它按如下的流程进行采集数据并保存数据和更新数据:

采集用户名,判断用户名是否合法,采集访问者的信息,对信息进行加工,进行保存和更新数据库,返回logo图标。

调用这个ASP用counter.asp?user=abc这个方式。

采集用户名我们可以用Request对象的相应方法取得,然后检查用户表判断用户是否合法,然后取信息,用我们上面讲到的取得相应信息的方法取得信息,然后进行加工保存在数据表里,但最重要的是如何对数据进行更新,如当日每小时访问统计数,当天每小时统计数等,我们如何对每天的数据进行更新是这个程式的要点,我们可以采取几种方式,如对每天的每个小时的记录的更新我们采取在每天午夜12点更新,对每月的每一天的数据我们在月份切换的那一天进行更新。

下面我讲一下具体的流程,以月份统计举例:

1,得出上一次的统计的日期时间

2,得出当前的日期时间,当前月份并转化成相应的ID

3,判断当前月份与上一次月份是否相同,如果相同则给总数加1,当前月的ID累加1,如不相同则清零所有月份ID,只给总数ID加1

4,根据月份统计我们可以做一下小时统计,周统计,天统计。

按如上的流程我们就可以做统计页了,要注意每个ID的分配要分类明确代表的含义要明晰。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有