ASP製作線上人數統計執行個體

來源:互聯網
上載者:User

我們先建立一個ACCESS資料庫

內容為

表名:zai

欄位為

1.ip

2.time

建立一個檔案為index.asp

然後就如下程式!

<%
'===================================================================================================
'
'******************** 冰翎線上人數統計程式 V2.0 ******************************
'
' 本站程式由 『冰翎工作室』--冰淇淋劍客 獨立製作!請尊重本人的勞動成果
'  
' 『冰翎工作室』─━╃→用實力打造個性
'
'* 作者:冰淇淋劍客  
'* 網站:http://www.blbcn.com  
'* 電子郵件:bingqilinjianke@163.com  
'* QQ:68156987
'* 住址:江蘇無錫
'******************************************************************************
'
' 著作權·抄襲挪用必究
'
'===================================================================================================

'---------定義變數
dim rs
dim ip
dim timeout
dim x
dim conn
dim dbpath
'---------定義變數結束

'---------建議資料庫連結
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("zai.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
'---------建立資料庫連結完成

'---------建立資料庫RS對象
set rs = server.createobject("adodb.recordset")
'---------建立資料庫RS對象完成

'---------讀取用戶端IP地址
ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") '若是對方使用的是Proxy 伺服器上網的話,用Request.ServerVariables("HTTP_X_FORWARDED_FOR")可以得到對方的真實IP,若對方不是通過Proxy 伺服器上網的話,則IP的值為空白
If ip = "" Then ip = Request.ServerVariables("REMOTE_ADDR") '如果IP的值為空白,則得到他的本地用戶端地址
'---------IP讀取完畢

'---------讀出資料庫內近20分鐘所加入的新內容數,group by ip-表IP值相同的記作1
sql="select ip from zai where time >= dateadd('n',-20,now()) group by ip"
rs.Open sql,conn,1,1
zai=rs.RecordCount
rs.Close
'---------得到線上人數值

'---------查看資料庫中是否已經有相同的值,沒有則 x="yes"有則x="no"
sql="select ip from zai where ip='" & ip & "'"
rs.Open sql,conn,1,1
if rs.eof and rs.bof then
x="yes"
else
x="no"
end if
rs.close
'--------判斷完畢

'--------如果資料庫中沒有相同的值則加入一個新值
if x="yes" then'   如果沒有這個IP則增加一條記錄
sql="select top 1 * from zai"
rs.Open sql,conn,1,3
rs.AddNew
rs("ip")=ip
rs("time")=now()
rs.update
rs.close
else   '如果有這個IP則把時間改為現在的時間

sql="select * from zai where ip='" & ip & "'"
rs.Open sql,conn,1,3
rs("time")=now()
rs.update
rs.close
end if
'--------判斷加入完畢

'--------刪除20分鐘以前所加入的值
timeout = dateadd("n", -20, now())
sql="delete * from zai where time < #" & timeout & "#"
conn.Execute sql
'--------刪除完畢

'--------關閉資料對象
set rs=nothing
conn.Close
set conn=nothing
%>
document.write("共<%=zai%>人線上")

OK!

完成了!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.