======製作原理======
方法就是當使用者造訪網頁時將使用者的資訊加入資料庫裡在新增的同時,檢查資料庫裡是否有該使用者的線上記錄,如果有,則更新該記錄,如果沒有就把他加入資料庫.
並刪除在指定時間內沒有活動的線上記錄.(大概就是這樣吧!)
======資料表設計=======
新建一個資料表,名為"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" -->
寫得不好,見笑了.如果你有更好的方法就獻上來吧,大家互相學習嘛!