这段时间修改自己公司的网站,让我很难受的是公司网站是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>