如何用ASP编写网站统计系统

原创 2000年08月07日 15:06:00
在目前的网站统计系统决大部分都是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)

  1 取得用户的操作系统。
  在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文件,所以我们可以结合这个字符串来判断浏览器属性。

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

  我们可以让用户在他的主页上加入如下语句:
  <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 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点更新,对每月的每一天的数据我们在月份切换的那一天进行更新。

如何用ASP编写网站统计系统

在目前的网站统计系统决大部分都是CGI的,但编写起来特别复杂,而ASP学起来简单,更有和数据库结合的优点,所以结合自己曾经做过的网站统计系统,和大家探讨一下ASP编写网站统计系统。   大家都看过网...
  • diti0498
  • diti0498
  • 2014年04月25日 17:26
  • 187

国外常见16款著名的实时网站统计系统

国内有很多著名的网站统计系统,如: CNZZ,51La,百度统计,量子统计等,但是国内的统计网址几乎都是实时的,对于国外的统计网站来说,大家比较熟悉的是Google Analytics,StatCou...
  • jiary5201314
  • jiary5201314
  • 2014年11月18日 20:50
  • 5673

如何实现ASP.NET中网站访问量的统计

下面介绍如何进行ASP.NET中网站访问量的统计。 一、建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_...
  • u011966339
  • u011966339
  • 2017年03月27日 17:32
  • 293

基于ACCESS和ASP的SQL多个表查询与计算统计代码(一)

最近在写几个关于“Project - Subitem - Task”的管理系统,说是系统还是有点夸大了,基本就是一个多表查询调用和insert、update的数据库操作,只是出现不少计算和统计的问题,...
  • u010435562
  • u010435562
  • 2014年12月18日 01:38
  • 2751

简易网站流量统计工具

简易网站流量统计工具 当然,说起网站流量统计,现在开源的也有,免费的也有,xx统计,xx统计,网上随便可以找到,个人之所以写这个工具的,完全出于个人喜好,作为一个“职业”码农,在码农的路子上也走了...
  • fengspg
  • fengspg
  • 2016年07月10日 18:13
  • 1645

一步一步,从零开始开发asp.net

逐步的记录自己学习.net开发的过程
  • wzj0808
  • wzj0808
  • 2016年12月26日 09:17
  • 689

从MVC实战学习网站编写(一)初识MVC

前情概要: 曾是学生时代的我,初识架构是一个传说中的三层架构。这可是鼻祖啊!因为大多数程序设计架构都是由这个衍生而来。简单的说就是UI层(界面),BLL层(业务处理),DAL层(数据处理)。就是分工明...
  • u010488290
  • u010488290
  • 2016年08月23日 08:59
  • 626

HttpSessionListener实现网站在线人数统计

在网站中经常需要进行在线人数的统计。过去的一般做法是结合登录和退出功能,即当用户输入用户名密码进行登录的时候计数器加1,然后当用户点击退出按钮退出系统的时候计数器减1。这种处理方式存在一些缺点,例如:...
  • g893465244
  • g893465244
  • 2014年11月05日 18:11
  • 1813

在服务器上发布 asp以及html网站 配置过程

(1)首先在本地机器上调试好asp以及html代码,以及连接数据库功能等。 (2)将自己做好的网站例如MyWeb放到服务器上面,例如放到一般的网站位置C:\inetpub\wwwroot\下。 (3)...
  • u200814342A
  • u200814342A
  • 2015年12月15日 11:24
  • 3842

ssm实现管理系统

这个项目主要有五个模块,这五个模块分别是数据管理、数据统计、用户管理、角色管理、网站信息管理。我们团队实现了其中的4个模块,分别是数据管理、数据统计、用户管理、网站信息管理。其中主要实现了对数据的增删...
  • qq_39136928
  • qq_39136928
  • 2018年01月05日 17:28
  • 56
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何用ASP编写网站统计系统
举报原因:
原因补充:

(最多只允许输入30个字)