======制作原理======
方法就是当用户访问网页时将用户的信息添加进数据库里
在添加的同时,检查数据库里是否有该用户的在线记录,如
果有,则更新该记录,如果没有就把他添加进数据库.
并删除在指定时间内没有活动的在线记录.(大概就是这样吧!)
======数据表设计=======
新建一个数据表,名为"Online"
删除自动编号字段
建立以下字段
字段名:ID 类型:数字
字段名:GUESTNAME 类型:文本
字段名:STATS 类型:文本
字段名:VISITIME 类型:日期/时间
字段名:OUTIME 类型:日期/时间
=======================以下部分源码,供参考,如果写得不好,欢迎指正=======================
<%
sub activeonline()
dim ip
'////删除180秒内不活动的在线记录.
sql="Delete FROM online WHERE DATEDIFF('s',outime,now())>180"
Co***Execute sql
if stats="" then'//如果stats的值为空,则显示为
stats="不知在做什么?"
else
stats=stats
end if
IP=replace(Re***st.ServerVariables("REMOTE_HOST"),".","")'////获取IP并消去IP中的"."
'////检查Online表中是否已有这个IP的记录
sql="select id from online where id='"&ip&"'"
set rs***nn.execute(sql)
if rs***f or rs***f 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
co***execute(sql)
end sub
%>
==========================实例===========================
将以上代码修改并保存为"On***e.asp"嵌入在各网页的尾部
<%
dim conn
dim connstr
on error resume next
connstr="DBQ="+se***r.mappath("数据库名称.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set co***server.createobject("AD***.CONNECTION")
co***open connstr
'保存为conn.asp文件
%>
<%
dim stats
stats="查看在线"
call activeonline()
Set rs = Se***r.CreateObject("AD***.Recordset")
sql="SELECT Id,GuestName,Stats,Visitime,Outime FROM Online ORDER BY Visitime Desc"
rs***en sql,conn,1,3
to***=rs.RecordCount
%>
昵称 | 动作 | 来访 | 最后活动 |
<%=rs(1)%> | <%=rs(2)%> | <%=rs(3)%> | <%=rs(4)%> |
%>
写得不好,见笑了.如果你有更好的方法就献上来吧,大家互相学习嘛!
上一篇: 如何开发基于ASP的FLASH MX在线图象浏览器
下一篇: 用ASP实现远程批量文件改名