asp訪問人數、在線人數.訪問來源(存儲到數據庫中)

 

這段時間修改自己公司的網站,讓我很難受的是公司網站是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>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章