论网站计数器及在线人数统计.docx
- 文档编号:26294026
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:7
- 大小:125.06KB
论网站计数器及在线人数统计.docx
《论网站计数器及在线人数统计.docx》由会员分享,可在线阅读,更多相关《论网站计数器及在线人数统计.docx(7页珍藏版)》请在冰豆网上搜索。
论网站计数器及在线人数统计
网站计数器及在线人数统计
1.系统设计
1.1需求分析
要求在网页中实现网站历史访问总人数以及当前在线人数的统计功能。
1.2设计原理
1.2.1网站计数器统计原理
在网络上能够看到各种网站计数器,这些计数器尽管千差万不,但本质上差不多上一样的,其原理大致为:
网站的访问量数据保存在服务器上的一个文本文件或数据库中;
扫瞄者访问包含有计数器的页面时,将触发计数程序,程序打开文本文件或查询数据库获得访问都扫瞄之前的计数数据,将计数值加1,在页面上显示并写回文本文件或数据库中。
1.2.2在线人数统计原理
统计在线人数需要用到ASP的Application对象。
在ASP中Application对象用于存储和接收能够被整个程序所有用户共享的信息。
当Web服务器启动并开始提供HTTP服务时,Application_OnStart事件被触发,初始化Application对象(发生在第一个Session_OnStart之前),一直到应用程序被卸载或者Web服务器停止服务的时候,Application_OnEnd事件被触发(发生在最后一个Session_OnEnd事件之后),Application对象被卸载。
因此,Application特不适合用来统计当前在线人数。
在Application_OnStart时候,将在线人数初始化为0,后面每个用户请求访问,建立会话触发Session_OnStart事件的时候,将Application对象统计人数的变量加1;当有会话结束,Session_OnEnd事件被触发的时候,将Application对象统计人数的变量减1,如此便能够完成在线人数统计功能。
2.数据库设计
webCount数据表的设计:
首先建一个webcount.mdb数据库,然后再建一个webcount的表,表结构如下图所示。
字段
类型
长度
必填字段
同意空值
讲明
Count_id
自动编号
流水号,主键
Count_ip
文本
50
Y
N
客户端IP地址
Count_time
日期/时刻
Y
客户访问时刻,默认值为NOW()
Count_user_agent
备注
Y
N
客户端用户代理
3.具体实现过程
3.1计数功能的实现
首先打开DW,新建一个名为“count.asp”的“ASPVBScript”的动态页面,然后定义数据库连接。
单击“应用程序/数据库”面板左上角的“+”按钮,在弹出菜单中选择“自定义连接字符串”选项,弹出“自定义连接字符串”对话框,在“连接名称”文本框内输入“conncount”,在“连接字符串”文本框中输入以下内容:
"provider=microsoft.jet.oledb.4.0;datasource="&server.mappath("/myweb/counter/data/webcount.mdb")
"Driver={MicrosoftAccessDriver(*.mdb)};DBQ="&server.mappath("/myweb/counter/data/webcount.mdb")
如图所示
在“Dreamweaver应用连接”中选择“使用服务器上的驱动程序”,然后单击“测试”命令按钮,能够查看数据库是否连接成功,假如成功将弹出“成功创建连接脚本”对话框,如图所示。
然后单击“确定”命令按钮关闭对话框。
这时在“应用程序/数据库”面板里将出现数据库结构信息,如图所示。
接下来,再设计count.asp页面,如图所示。
创建记录集:
单击“应用程序/绑定”面板左上角的“+”按钮,在弹出菜单中选择“记录集(查询)”选项,如图所示
选择“记录集(查询)”后,系统会弹出“记录集”对话框,然后单击对话框中的“高级”命令按钮,弹出记录集高级设置对话框,如图所示。
在弹出的“记录集对话框”的“SQL”中输入SQL语句,具体设置如图所示。
如图所示。
然后在SQL文本框中输入以下SQL语句:
SELECTcount(*)+1asctotalFROMwebcount
如图所示
然后点击“测试”按钮弹出如图所示对话框,再单击“确定”按钮完成记录集设置。
绑定记录集:
完成了记录集的设置后,就要在页面中绑定记录集。
展开绑定面板中“记录集(recordset1)”,将记录集中的ctotal拖动到设计好的页面中需要显示计数值的位置。
绑定记录集后的页面如图所示。
插入当前访问用户数据到数据库:
单击“应用程序/绑定”面板上左上角的“+”按钮,在弹出菜单中选择“命令(预存过程)”选项,如图所示。
选择“命令(预存过程)”选项后,弹出“命令”对话框,如图所示。
在该对话框中进行设置:
名称——command1,连接——conncount,类型——插入;在“数据库项”里展开要插入数据的表“webcount”,选中其中的“count_ip”字段,然后单击旁边的“列”按钮,SQL语句就变为“INSERTINTOwebcount(count_ip)VALUES()”,如图所示。
在SQL语句中的“VALUES()”输入“user_ip”,然后单击“变量”后的“+”按钮,在“名称”中输入“user_ip”,在“运行值”中输入“request.servervariables('remote_addr')”,如此就完成了对webcount表中插入一条新记录的变量设置与赋值,“request.servervariables('remote_addr')”是用来猎取客户端IP地址的。
再同样的方法设置猎取客户端扫瞄器用户代理字符串,在SQL语句中的“VALUES()”输入“user_agent”,然后单击“变量”后的“+”按钮,在“名称”中输入“user_agent”,在“运行值”中输入“request.servervariables('http_user_agent')”。
对count_id和count_time不需要进行赋值,因为前者是自动编号,后者是建立数据表时差不多默认其值为“NOW()”。
设置后如图所示
3.2当前在线人数统计
在DW中新建一个名为“global.asa”的动态页面。
输入如图所示代码:
输入以上代码后,将global.asa保存在网站的根目录,否则无法在count.asp页面中显示在线人数。
在计数页面中创建application对象:
从global.asa切换到count.asp页面,单击“应用程序/绑定”面板左上角的“+”按钮,在弹出菜单中选择“应用程序变量”选项,如图所示,会弹出如图所示“应用程序变量”对话框。
在名称中输入“onlineuser”,那个变量确实是在global.asa中定义的,用来统计在线人数的application变量名称,在count.asp要显示变量值时需要引用那个变量。
绑定应用程序变量到页面
建立好“onlineuser”应用程序变量后,绑定面板上就会出现一个application对象,单击该对象前的“+”按钮,就会展开对象出现onlineuser变量,拖动该变量到页面上显示的在线人数位置,如图所示。
至此网站计数器和在线人数统计模块设计完成,能够在IIS中进行扫瞄,查看结果。
4.系统测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网站 计数器 在线 人数 统计