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

WEB开发 专栏收录该内容
24 篇文章 0 订阅
在目前的网站统计系统决大部分都是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点更新,对每月的每一天的数据我们在月份切换的那一天进行更新。
  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

ASP和SQL一直深受网站数据库设计人员的喜爱。 本书着重介绍ASP程序设计语言的各种功能及其实际应, 同时也介绍SQL Server的程序设计技巧。本书将引导读者ASP语法, 配合数据库系统的开发技巧,构建一个完整的“网站数据库”。 本书可作为网站数据库开发人员的学习书, 同时也可作为网页制作爱好者的参考手册。 目 录 第1章 架设网站……………………………….1 1-1 服务器的选 2 1-2 安装或升级IE的版本 3 1-3 安装IIS 6 1-4 测试及设置 12 第2章 编辑器的选………………………..17 2-1 编辑软件的需求 18 2-1-1 记事本 18 2-1-2 FrontPage 编辑器与MSE编辑器 19 2-2 MSE的操作 23 2-2-1 MSE的各部分 23 2-2-2 建立基本的设计窗体 24 2-3 加入控制标记 28 2-3-1 加入文字 28 2-3-2 加入窗体控制标记 29 2-3-3 加入ASP控制命令 32 2-3-4 存储设计的成果 33 2-3-5 修改的方式 35 2-4 本章总结 36 第3章 数据库基本概念……………………..39 3-1 数据库系统 40 3-1-1 数据库系统的类型 40 3-1-2 数据库系统的结构 40 3-1-3 数据库系统的主要组件 42 3-1-4 数据集中化管理 44 3-1-5 数据独立 46 3-2 数据库管理系统(DBMS) 46 3-3 关系型数据库 48 3-3-1 数据的表示方法 48 3-3-2 表 49 3-3-3 键 50 3-3-4 表索引 50 3-3-5 视图 51 3-3-6 存储过程 52 3-3-7 触发器 53 3-3-8 数据目录 54 3-4 数据库设计 55 3-4-1 Entities & Relationship 55 3-4-2 数据正规化 55 3-5 SQL语句 58 3-5-1 DDL数据定义语言 58 3-5-2 DML数据处理语言 59 第4章 系统的安装与激活…………….……..61 4-1 安装前的准备 62 4-1-1 选择安装版本 62 4-1-2 硬件需求 63 4-1-3 软件需求 63 4-2 开始安装SQL Server 2000 64 4-3 重要设置说明 73 4-3-1 服务帐户 73 4-3-2 安全验证方式 79 4-3-3 许可模式 82 4-4 管理工具程序 85 4-4-1 Enterprise Manager管理 工具 85 4-4-2 Profiler管理工具 86 4-4-3 查询分析器 87 4-4-4 服务器网络公程序 88 4-4-5 客户端网络公程序 89 4-4-6 服务管理器 89 4-4-7 导入及导出数据 90 4-5 激活服务 91 4-5-1 服务的启动方式 91 4-5-2 SQL Server服务管理器的操作 92 第5章 数据库的创建………………….…….95 5-1 Enterprise Manager管理工具 96 5-1-1 Enterprise Manager画面 96 5-1-2 Enterprise Manager的操作 97 5-1-3 向导的使 98 5-2 注册SQL Server 99 5-2-1 使“注册服务器向导” 注册 99 5-2-2 直接设置注册属性 103 5-2-3 更改注册 105 5-2-4 删除注册 106 5-3 内建数据库 106 5-4 数据库结构 107 5-4-1 数据库的逻辑组件 107 5-4-2 数据库的实体结构 111 5-4-3 文件组 112 5-5 创建新的数据库 113 5-5-1 使Enterprise Manager管理工具 114 5-5-2 利创建数据库向导 117 5-5-3 CREATE DATABASE 指令 122 5-6 数据库选项 124 5-6-1 自动选项 124 5-6-2 数据指针选项 126 5-6-3 复原选项 126 5-6-4 SQL选项 127 5-6-5 状态选项 129 5-6-6 调整数据库选项 129 5-7 数据库的删除与分离 132 5-7-1 删除数据库 132 5-7-2 分离数据库 133 5-7-3 附加数据库 133 第6章 表的创建…………………………….135 6-1 查看数据的内容 136 6-1-1 使“打开表”功能查看数据内容 136 6-1-2 查看表属性 137 6-2 数据类型 138 6-2-1 数值数据 138 6-2-2 货币数据 139 6-2-3 日期数据 139 6-2-4 字符串数据 140 6-2-5 Unicode数据 141 6-2-6 Binary数据 141 6-2-7 其他特殊数据类型 142 6-3 创建表 143 6-3-1 表设计窗口 143 6-3-2 使表设计窗口创建 表 148 6-3-3 创建表主键 150 6-3-4 使CREATE TABLE指令创建表 152 6-4 表索引的管理 154 6-4-1 表设计工具属性页 154 6-4-2 利表设计工具属性创建索引 156 6-4-3 使向导创建索引 158 6-4-4 利“管理索引”窗口管理表索引 161 6-5 创建关联 162 6-6 数据输入 165 6-6-1 在表窗口中输入数据 165 6-6-2 导入数据 166 6-6-3 使INSERT INTO语句 171 第7章 数据库的备份与管理……………….173 7-1 生成数据库的SQL脚本 174 7-1-1 生成SQL脚本窗口 174 7-1-2 执行生成SQL脚本 179 7-1-3 执行SQL脚本文件 181 7-2 收缩数据库 182 7-3 数据库备份与还原 185 7-3-1 备份模式 185 7-3-2 数据库备份 186 7-3-3 数据库备份设置实例 189 7-3-4 数据库还原 190 7-4 使权限的管理 194 7-4-1 权限类型 194 7-4-2 权限验证 197 7-4-3 权限授与 197 7-4-4 拒绝权限 202 7-4-5 撤销权限 204 第8章 Transact-SQL语法基础…………….207 8-1 Transact-SQL 表达式 208 8-1-1 数学表达式 208 8-1-2 字符串表达式 209 8-1-3 比较表达式 209 8-1-4 逻辑表达式 210 8-1-5 表达式的优先级 210 8-2 Transact-SQL数据类型 211 8-3 Transact-SQL 函数 213 8-4 Query Analyzer工具程序 220 8-5 Transact-SQL 语句语法 223 8-5-1 Create Table语句 223 8-5-2 Alter Table语句 225 8-5-3 Drop Table语句 229 8-6 数据处理语法(DML) 230 8-6-1 Select语句 230 8-6-2 Active Query?Insert语句 240 8-6-3 Active Query-Delete语句 242 8-6-4 Active Query-Update语句 244 第9章 Response,Request对象的 基础与应…………………………247 9-1 Response对象 248 9-1-1 Write方法的基础与应 250 9-1-2 Redirect方法的基础与 应 252 9-1-3 END方法的基础与应 255 9-1-4 Cookies的基础与应 256 9-1-5 服务器缓冲区处理 259 9-2 Request对象 261 9-2-1 ClientCertificate变量 262 9-2-2 Cookies集合 262 9-2-3 Form集合 264 9-2-4 QueryString变量 266 9-2-5 ServerVariables集合 270 9-3 Session对象的基础与应 272 9-3-1 Session对象的基础 272 9-3-2 Session变量的使 272 9-3-3 Session变量的使限制 276 9-4 Application对象 277 9-4-1 ASP程序之间信息的共享 277 9-4-2 Application语法 279 9-4-3 Application变量的使 280 9-5 Global.asa文件 282 9-5-1 Global.asa文件的结构 282 9-5-2 全局对象 283 9-5-3 Application起始及结束 事件 284 9-5-4 Application与Session对象的事件处理程序 285 9-5-5 Global.asa文件的使 285 第10章 ODBC的设置与应……….…….287 10-1 ODBC的简介 288 10-2 数据存取组件的更新 290 10-2-1 下载MDAC 290 10-2-2 更新数据存取组件 293 10-3 ODBC数据源的创建 294 10-4 测试ODBC DSN 300 第11章 ADO对象的基础与应…………303 11-1 ADO对象的结构 304 11-1-1 ADO对象 304 11-1-2 ADO的结构 304 11-2 Connection对象 305 11-2-1 连接、打开数据库的 方法 305 11-2-2 直接使ADO与SQL 连接 307 11-2-3 直接与Access MDB 连接 308 11-3 Recordset对象的基础 308 11-3-1 取得字段名称与内容 314 11-3-2 取得、移动记录指针 317 11-3-3 Field对象 320 11-4 ADO对象与数据库的应 323 11-4-1 添加记录 323 11-4-2 记录的更新 327 11-4-3 记录的删除 334 11-5 Error对象 339 第12章 ASP与ActiveX DLL………………345 12-1 什么是MTS 346 12-1-1 MTS概述 346 12-1-2 何时该使MTS 348 12-1-3 使MTS的优点 349 12-2 如何创建ASP组件 350 12-2-1 新建工程 351 12-2-2 设置引 352 12-2-3 如何设计ActiveX DLL的内容 357 12-2-4 编译ActiveX DLL 360 12-3 将组件加入MTS 362 12-3-1 NT技术操作平台 363 12-3-2 Windows 9x技术操作 平台 363 12-3-3 注册ActiveX DLL 364 12-4 调MTS中的ASP组件 368 12-4-1 开始编辑ASP程序 368 12-4-2 带有参数的ASP程序 370 第13章 Server对象与其他对象的 整合、应………………………..373 13-1 FSO文件对象组件 374 13-1-1 FileSystemObject对象的基础 374 13-1-2 创建文本文件 375 13-1-3 检查文件是否存在 378 13-1-4 删除文件 380 13-1-5 取得文件属性 383 13-2 文本文件的读取与写入 386 13-2-1 如何读取与写入文本 文件 386 13-2-2 写入文本文件 389 13-2-3 写入空白行到文本文件 391 13-2-4 写入一行字符串到文本 文件 394 13-2-5 添加文字到文本文件 396 13-2-6 读取文本文件的字符/一行文字 398 13-2-7 读取整个文本文件 400 13-3 CDO对象 403 13-3-1 SMTP环境的创建与 使 404 13-3-2 实际测试 407 13-3-3 使邮件接收软件验证 411 第14章 范例系统的设计与应(一)………413 14-1 结构说明 414 14-2 动态菜单的设计 415 14-2-1 设置CSS属性 416 14-2-2 固定的选项设计 417 14-2-3 动态选项的设计 419 14-2-4 CSS表现方式的控制 421 14-3 Cookies的处理 422 14-4 动态产品展示 424 14-4-1 基本功能设置 425 14-4-2 相关资料的取得 425 14-4-3 全图预览方式的设置 427 14-4-4 动态展示产品内容 428 14-5 新上市产品 431 14-6 索取详细信息 432 14-6-1 未选择产品信息需求 的处理 434 14-6-2 显示选择信息的内容 436 14-6-3 户填写信息的窗体 设计 438 14-6-4 存储户信息 442 14-6-5 写入户填写的信息 446 14-6-6 以E-Mail 转发户 需求 450 第15章 范例系统的设计与应(二)………455 15-1 后台数据管理系统的组成 456 15-2 登录管理 457 15-3 系统信息设置 461 15-4 密码更改 467 15-5 币别信息管理 472 15-6 类别管理 478 15-7 产品上架 484 15-8 产品下架 490 15-9 产品信息修改 496 附录 范例系统安装…………………………507 一、还原数据库 508 二、复制范例 513 三、实际测试 514 四、错误排除 515
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值