教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> ASP >> ASP用户在线的制作方法 RSS订阅
ASP用户在线的制作方法
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
======制作原理======

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

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

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


写得不好,见笑了.如果你有更好的方法就献上来吧,大家互相学习嘛!
===================完工====================

来源:upschool.com.cn
作者:旭旭
关键字:ASP,在线人数
发表日期:2007-1-16 22:52:36

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:用ASP批量更新SQL SERVER数据.   下一篇:


2009-1-9 20:46:55
本文的相类似文章
  • ASP.Net发现漏洞 黑客绕过安全设置
  • ASP用户在线的制作方法
  • 用ASP批量更新SQL SERVER数据.
  • ASP判断一个字符串包含在一个长字符串或数组中
  • ASP 编程中20个非常有用的例子
  • Asp组件的开发与使用(实例)
  • asp对SQL Server 数据库的备份与恢复(实例)
  • asp结合利用SQL群发简单邮件。
  • ASP页面内VBScript和JScript的交互
  • ASP服务器端获取图片长宽实例
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com