這段時間修改自己公司的網站,讓我很難受的是公司網站是asp代碼寫的。
在其基礎上要新增訪問統計功能,本來覺得很簡單,在網上找了一些代碼拼湊的使用
除了很多錯誤,asp異常信息也不熟。每次出現錯誤就要到網上找錯誤原因。
爲以後使用方便因此記錄。
<SCRIPT LANGUAGE="vbscript" RUNAT="server">
dim conn,db
dim connstr,strsql,streferer,strdomain
db="/ysbeyond/Databases/21asp.mdb" //數據庫文件位置
//創建連接對象
set conn=server.CreateObject("adodb.connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
sub Application_onStart
conn.open connstr
//查詢訪問數量
strsql="select top 1 * from statistics"
set rs =server.createobject("adodb.recordset")
rs.open strsql,conn,1,1
if rs.eof and rs.bof then
response.write "數據無記錄"
else
Application("Count")=Cint(rs("accesscnt")) //總訪問人數
end if
Application("Online") = 0 //在線人數
end sub
Sub Session_OnStart
Session.Timeout=2 //會話結束時間
Application.Lock
if conn.state = 0 then
conn.open connstr
end if
//更新訪問數量
strsql = "update statistics set accesscnt = accesscnt +1 "
conn.execute(strsql)
//記錄訪問地址
set streferer = Request.ServerVariables("HTTP_REFERER") //訪問來源地址
set strdomain = Request.ServerVariables("SERVER_NAME") //域名
strsql = "insert into referersource(refurl,visitdate) values('"&strdomain&"','"&now()&"')"
conn.execute(strsql)
//查詢訪問數量
strsql="select top 1 * from statistics"
set rs =server.createobject("adodb.recordset")
if rs.state = 0 then
rs.open strsql,conn,1,1
end if
if rs.eof and rs.bof then
response.write "數據無記錄"
else
Application("Count")=Cint(rs("accesscnt")) //總訪問人數
end if
Application("Online") = Cint(Application("Online")) + 1 //在線人數+1
Application.UnLock
end sub
Sub Session_OnEnd
Application.Lock
Application("Online") = Cint(Application("Online")) - 1 //會話結束時在線人數減1
Application.UnLock
end sub
</script>