「在線訪客」的製作方法



======製作原理====== 
方法就是當用戶訪問網頁時將用戶的信息添加進數據庫裡
在添加的同時,檢查數據庫裡是否有該用戶的在線記錄,如
果有,則更新該記錄,如果沒有就把他添加進數據庫.
並刪除在指定時間內沒有活動的在線記錄.(大概就是這樣吧!)

======數據表設計=======
新建一個數據表,名為"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" -->
寫得不好,見笑了.如果你有更好的方法就獻上來吧,大家互相學習嘛!



文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:

评论: 0 | 引用: 0 | 查看次数: 2539
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭