当前位置: 首页 > 图文教程 > 网络编程 > ASP > “在线访客”的制作方法

ASP
asp生成三维饼图的函数
ASP下的简洁的多重查询的方法与函数 真不错
发一个ASP的ADODB类代码
A利用ASP小偷和Google实现在线翻译功能的代码
ASP类型网站结合动网论坛会员的方法
Asp下实现多表单域无组件文件上传的实例
asp制作中常用到的函数库集合
易心asp分页类 v1.0
asp中xmlhttp组件发包
检测是否为数字类型的asp代码
可以获得文件的文件名的asp函数
用asp实现访问远程计算机上MDB access数据库文件的方法
用ASP实现写IIS日志的代码
asp在IE浏览器中下载服务端上的各类文件的实现方法
asp汉字中文图片验证码的实现代码
asp WAP获取手机终端信息的一段代码
asp取得数组中的最大值的方法
用asp实现的截取指定格式字符串的代码
asp jmail发邮件 详细解析
ASP编程中连接数据库和数据库操作的常用代码

ASP 中的 “在线访客”的制作方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 231 ::
收藏到网摘: n/a

  作者:旭旭(07idea)
时间:2003-01-30
E-Mail:[email protected]


======制作原理======

方法就是当用户访问网页时将用户的信息添加进数据库里
在添加的同时,检查数据库里是否有该用户的在线记录,如
果有,则更新该记录,如果没有就把他添加进数据库.
并删除在指定时间内没有活动的在线记录.(大概就是这样吧!)

======数据表设计=======

新建一个数据表,名为"Online"
删除自动编号字段
建立以下字段
字段名:ID      类型:数字
字段名:GUESTNAME    类型:文本
字段名:STATS    类型:文本
字段名:VISITIME    类型:日期/时间
字段名:OUTIME    类型:日期/时间


=======================以下部分源码,供参考,如果写得不好,欢迎指正=======================

<%
sub activeonline()

dim ip

'////删除180秒内不活动的在线记录.
sql="Delete FROM online WHERE DATEDIFF('s',outime,now())>180"
Conn.Execute sql

if stats="" then'//如果stats的值为空,则显示为
stats="不知在做什么?"
else
stats=stats
end if

IP=replace(Request.ServerVariables("REMOTE_HOST"),".","")'////获取IP并消去IP中的"."

'////检查Online表中是否已有这个IP的记录

sql="select id from online where id='"&ip&"'"
set rs=conn.execute(sql)

if rs.eof or rs.bof then'////如果没有该IP记录则添加在线记录

sql="insert into online(id,guestname,stats,visitime,outime) values ("&ip&",'游客','"&stats&"',Now(),Now())"

else'////如果Online表中已有该IP记录则更新该记录

sql="update online set outime=Now(),stats='"&stats&"',guestname='游客' where id='"&ip&"'"

end if
conn.execute(sql)

end sub
%>
==========================实例===========================
将以上代码修改并保存为"Online.asp"嵌入在各网页的尾部

<%

dim conn   
dim connstr
on error resume next
connstr="DBQ="+server.mappath("数据库名称.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr 
'保存为conn.asp文件 
%>

<!--#INCLUDE FILE="conn.asp" -->
<%

dim stats

stats="查看在线"

call activeonline()


Set rs = Server.CreateObject("ADODB.Recordset")
sql="SELECT Id,GuestName,Stats,Visitime,Outime FROM Online ORDER BY Visitime Desc"
rs.open sql,conn,1,3

total=rs.RecordCount

%>
<table border="1" cellpadding="2" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" height="53">
  <tr>
    <td width="20%" height="16" align="center">昵称</td>
    <td width="20%" height="16" align="center">动作</td>
    <td width="20%" height="16" align="center">来访</td>
    <td width="20%" height="16" align="center">最后活动</td>
  </tr>
<%do while not rs.eof%>
  <tr>
    <td width="20%" height="28" align="center"><%=rs(1)%></td>
    <td width="20%" height="28" align="center"><%=rs(2)%></td>
    <td width="20%" height="28" align="center"><%=rs(3)%></td>
    <td width="20%" height="28" align="center"><%=rs(4)%></td>
  </tr>
<%
rs.movenext
loop
%>
</table>
在线人数:<%=total%>
<%
rs