“在线访客”的制作方法

王朝other·作者佚名  2006-11-24
宽屏版  字体: |||超大  

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

方法就是当用户访问网页时将用户的信息添加进数据库里

在添加的同时,检查数据库里是否有该用户的在线记录,如

果有,则更新该记录,如果没有就把他添加进数据库.

并删除在指定时间内没有活动的在线记录.(大概就是这样吧!)

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

新建一个数据表,名为"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.close

set rs=nothing

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有