快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

“在线访客”的制作方式

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

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

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

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


写得不好,见笑了.假如你有更好的方式就献上来吧,大家互相学习嘛!
返回类别: 教程
上一教程: ASP入门-微软版笔记
下一教程: XMLHTTP+JAVASCRIPT+ASP写得聊天室,无刷新实现(五)

您可以阅读与"“在线访客”的制作方式"相关的教程:
· 会员系统“找回密码”的制作方式
· 彩色校验码的制作方式
· 词语搭配游戏的制作(ASP)二
· asp+版本简朴的留言板的制作(二)
· 词语搭配游戏的制作(ASP)一
    微笑服务 优质保证 索取样品