明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

“在線訪客”的制作方法

[摘要]作者:旭旭(07idea)時間:2003-01-30E-Mail:kgd1999@21cn.com======制作原理======方法就是當用戶訪問網(wǎng)頁時將用戶的信息添加進數(shù)據(jù)庫里在添加的同時,檢查...
作者:旭旭(07idea)
時間:2003-01-30
E-Mail:kgd1999@21cn.com


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

方法就是當用戶訪問網(wǎng)頁時將用戶的信息添加進數(shù)據(jù)庫里
在添加的同時,檢查數(shù)據(jù)庫里是否有該用戶的在線記錄,如
果有,則更新該記錄,如果沒有就把他添加進數(shù)據(jù)庫.
并刪除在指定時間內(nèi)沒有活動的在線記錄.(大概就是這樣吧!)

======數(shù)據(jù)表設計=======

新建一個數(shù)據(jù)表,名為"Online"
刪除自動編號字段
建立以下字段
字段名:ID      類型:數(shù)字
字段名:GUESTNAME    類型:文本
字段名:STATS    類型:文本
字段名:VISITIME    類型:日期/時間
字段名:OUTIME    類型:日期/時間


=======================以下部分源碼,供參考,如果寫得不好,歡迎指正=======================

<%
sub activeonline()

dim ip

'////刪除180秒內(nèi)不活動的在線記錄.
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"嵌入在各網(wǎng)頁的尾部

<%

dim conn   
dim connstr
on error resume next
connstr="DBQ="+server.mappath("數(shù)據(jù)庫名稱.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>
在線人數(shù):<%=total%>
<%
rs.close
set rs=nothing

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

寫得不好,見笑了.如果你有更好的方法就獻上來吧,大家互相學習嘛!