<%
if door = 1 and Request.Cookies("Count")("login") <> "yes"then
response.Redirect("login.asp?Message=必须登陆后方可浏览统计信息。")
response.End()
end if
act = Request("act")
if act = "" then act="main"
Select Case act
Case "admin"
Call Sb_Admin()
Case "main"
Call Sb_Main()
Case "hour"
Call Sb_Hour()
Case "day"
Call Sb_Day()
Case "month"
Call Sb_Month()
Case "osexp"
Call Sb_OsExp()
Case "where"
Call Sb_Where()
Case "referer"
Call Sb_Referer()
Case "last20"
Call Sb_Last20()
Case Else
Response.Write("走错地方了...")
Response.End
End Select
Dim vCount,endtime,startime
Dim WebCountTime
Dim vOnline
Dim vYToday,vToday,vCDate,vAveCount,vYCount,vMCount
Sub Sb_Admin()
If request.ServerVariables("REQUEST_METHOD") = "POST" then
WebName = Request("WebName")
WebUrl = Request("WebUrl")
WebEmail = Request("WebEmail")
WebMaster = Request("WebMaster")
WebExp = Fn_EnChar(Request("WebExp"))
Exe = Request("exe")
Select Case Exe
Case "insert"
vSql = "insert into WebInfo(WebName,WebUrl,WebEmail,WebMaster,WebExp,WebCountTime) values('"&WebName&"','"&WebUrl&"','"&WebEmail&"','"&WebMaster&"','"&WebExp&"',date())"
Conn.execute vSql
Num = Request("lastnum")
if Num <> "" then
if cInt(Num) <= 0 then Num = 1
Set Rs = GetRs("select * from Last20Vister")
cha = cInt(Num) - Rs.recordcount
if cha > 0 then
Set aRs = UIRs("Last20Vister")
for i = 1 to cha
aRs.addnew
next
aRs.UpdateBatch
aRs.close
elseif cha < 0 then
Set dRs = UIRs("select top "&abs(cha)&" * from Last20Vister order by cCT asc,id asc")
for i = 1 to abs(cha)
dRs.delete
dRs.MoveNext
next
dRs.UpdateBatch
dRs.close
end if
end if
Response.write "
"
Exe = "update"
Case "update"
vSql = "update WebInfo set WebName='"&WebName&"',WebUrl='"&WebUrl&"',WebEmail='"&WebEmail&"',WebMaster='"&WebMaster&"',WebExp='"&WebExp&"'"
Conn.execute vSql
WebExp = Fn_DeChar(WebExp)
Num = Request("lastnum")
if Num <> "" then
if cInt(Num) = 0 then Num = 1
Set Rs = GetRs("select * from Last20Vister")
cha = cInt(Num) - Rs.recordcount
if cha > 0 then
Set aRs = UIRs("Last20Vister")
for i = 1 to cha
aRs.addnew
next
aRs.UpdateBatch
aRs.close
elseif cha < 0 then
Set dRs = UIRs("select top "&abs(cha)&" * from Last20Vister order by cCT asc,id asc")
for i = 1 to abs(cha)
dRs.delete
dRs.MoveNext
next
dRs.UpdateBatch
dRs.close
end if
end if
Response.write "
"
End Select
else
if Request.Cookies("Count")("login") <> "yes" then
response.Redirect("./login.asp")
else
Set vRs = GetRs("select WebName,WebUrl,WebEmail,WebMaster,WebExp from WebInfo")
if not vRs.eof then
WebName = vRs("WebName")
WebUrl = vRs("WebUrl")
WebEmail = vRs("WebEmail")
WebMaster = vRs("WebMaster")
WebExp = Fn_DeChar(vRs("WebExp"))
Exe = "update"
else
Exe = "insert"
end if
vRs.close:Set vRs=nothing
end if
end if
%>
<%
End Sub
Dim aHour
Dim MaxHour
Dim sImage
Dim SAimage
Sub Sb_Hour()
'取的当前小时数
vHour = hour(now())
'循环取最近24小时的访问人数
Conn.execute "update cH set cTHC=0,HMD=now() where DATEDIFF('h',HMD,Now()) > 23 "
MaxHour = 0
vSql = "select cH.cHour,cH.cTHC,MaxNum.MaxCount from cH,(select Max(cTHC) as MaxCount from cH) as MaxNum order by cH.cHour asc"
Set vRs = GetRs (vSql)
Dim aHour(23)
for i=0 to ubound(aHour)
aHour(i) = vRs("cTHC")
MaxHour = vRs("MaxCount")
vRs.MoveNext
next
'算出图例最大值的比例
if MaxHour = 0 then MaxHour = 1
vPoint = 100/MaxHour
k=0
avgcount=0
sImage = "
最近24小时统计图表
"&MaxHour&"
"&MaxHour*0.75&"
"&MaxHour*0.5&"
"&MaxHour*0.25&"
"
for vPH = vHour+1 to 23
k = k+1
sHeight = aHour(vPH)*vPoint
avgcount = avgcount + aHour(vPH)
avgheight = (avgcount/k)*vPoint
sImage = sImage & "
"&vPH&"
"
next
for vBH = 0 to vHour
k = k+1
sHeight = aHour(vBH)*vPoint
avgcount = avgcount + aHour(vBH)
avgheight = (avgcount/k)*vPoint
sImage = sImage & "
"&vBH&"
"
next
sImage = sImage & "
单位(点)
"
'取出所有24小四的统计图表
vSql = "select cH.cHour,cH.cCHC,MaxNum.MaxCount from cH,(select Max(cCHC) as MaxCount from cH) as MaxNum order by cH.cHour asc"
Set vRs = GetRs(vSql)
MaxHour = 0
for i=0 to ubound(aHour)
aHour(i) = vRs("cCHC")
MaxHour = vRs("MaxCount")
vRs.MoveNext
next
'算出图例最大值的比例
if MaxHour = 0 then MaxHour = 1
vPoint = 100/MaxHour
sImage = sImage & "
访问量24小时分配图表
"&MaxHour&"
"&MaxHour*0.75&"
"&MaxHour*0.5&"
"&MaxHour*0.25&"
"
for vL = 0 to 23
sHeight = aHour(vL)*vPoint
sImage = sImage & "
<%
End Sub
Dim sADImage,sDImage
Sub Sb_day()
vDay = day(now())
'循环取最近24小时的访问人数
MaxCDay = 0
MaxDay = Fn_MaxDay(Month(DateAdd("m",-1,now())))
Conn.execute "update cD set cTDC=0,DMD=now() where DATEDIFF('d',DMD,Now()) > "&MaxDay
Dim aDay(31)
vSql = "select cD.cDay,cD.cTDC,MaxNum.MaxCount from cD,(select Max(cTDC) as MaxCount from cD) as MaxNum order by cD.cDay asc"
Set vRs = GetRs(vSql)
for i=1 to Ubound(aDay)
aDay(i) = vRs("cTDC")
MaxCDay = vRs("MaxCount")
vRs.MoveNext
if vRs.eof then exit for
next
'算出图例最大值的比例
if MaxCDay = 0 then MaxCDay = 1
vPoint = 100/MaxCDay
k=0
avgcount=0
sDImage = "
"
next
for vL = 1 to vDay
k=k+1
sHeight = aDay(vL)*vPoint
avgcount = avgcount + aDay(vL)
avgheight = (avgcount/k)*vPoint
sDImage = sDImage & "
"&vL&"
"
next
sDImage = sDImage & "
"
'取出所有24小四的统计图表
MaxDay = Fn_MaxDay(Month(Now()))-1
MaxCDay = 0
vSql = "select cD.cDay,cD.cCDC,MaxNum.MaxCount from cD,(select Max(cCDC) as MaxCount from cD) as MaxNum order by cD.cDay asc"
Set vRs = GetRs(vSql)
for i=1 to Ubound(aDay)
aDay(i) = vRs("cCDC")
MaxCDay = vRs("MaxCount")
vRs.MoveNext
if vRs.eof then exit for
next
vRs.close
'算出图例最大值的比例
if MaxCDay = 0 then MaxCDay = 1
vPoint = 100/MaxCDay
sDImage = sDImage & "
访问量各天分配图表
"&MaxCDay&"
"&MaxCDay*0.75&"
"&MaxCDay*0.5&"
"&MaxCDay*0.25&"
"
for vL = 1 to 31
sHeight = aDay(vL)*vPoint
sDImage = sDImage & "
"&vL&"
"
next
sDImage = sDImage & "
"
Erase aDay
Call DrawTable("按日统计信息",sDimage)
%>
<%
End Sub
Dim sMImage,sAMImage
Sub Sb_Month()
'取的当前小时数
vMonth = Month(now())
Conn.execute "update cM set cTMC=0,MMD=now() where DATEDIFF('m',MMD,Now()) > 11 "
Dim aMonth(12)
MaxMonth = 0
'循环取最近24小时的访问人数
vSql = "select cM.cMonth,cM.cTMC,MaxNum.MaxCount from cM,(select Max(cTMC) as MaxCount from cM) as MaxNum order by cM.cMonth asc"
Set vRs = GetRs(vSql)
for vS=1 to 12
aMonth(vS) = vRs("cTMC")
MaxMonth = vRs("MaxCount")
vRs.MoveNext
next
vRs.close
'算出图例最大值的比例
if MaxMonth = 0 then MaxMonth = 1
vPoint = 100/MaxMonth
sMImage = "
最近12个月统计图表
"&MaxMonth&"
"&MaxMonth*0.75&"
"&MaxMonth*0.5&"
"&MaxMonth*0.25&"
"
for vL = vMonth+1 to 12
sHeight = aMonth(vL)*vPoint
sMImage = sMImage & "
"&vL&"
"
next
for vL = 1 to vMonth
sHeight = aMonth(vL)*vPoint
sMImage = sMImage & "
"&vL&"
"
next
sMImage = sMImage & "
单位(月)
"
'取出所有24小四的统计图表
sMonth = ""
MaxMonth = 0
vSql = "select cM.cMonth,cM.cCMC,MaxNum.MaxCount from cM,(select Max(cCMC) as MaxCount from cM) as MaxNum order by cM.cMonth asc"
Set vRs = GetRs(vSql)
for vS=1 to Ubound(aMonth)
aMonth(vS) = vRs("cCMC")
MaxMonth = vRs("MaxCount")
vRs.MoveNext
next
vRs.close
'算出图例最大值的比例
if MaxMonth = 0 then MaxMonth = 1
vPoint = 100/MaxMonth
sMImage = sMImage & "
访问量12个月分配图表
"&MaxMonth&"
"&MaxMonth*0.75&"
"&MaxMonth*0.5&"
"&MaxMonth*0.25&"
"
for vL = 1 to 12
sHeight = aMonth(vL)*vPoint
sMImage = sMImage & "
"&vL&"
"
next
sMImage = sMImage & "
单位(月)
"
'年份~
Call DrawTable("按月统计信息",sMimage)
%>
<%
End Sub
Dim sOsImage,sExpImage,sScrImage
Sub Sb_OSExp()
MaxValue = 0
'系统
oSql = "select cO.cOS,cO.cCOC,MaxNum.MaxCount from cO,(select Max(cCOC) as MaxCount from cO) as MaxNum order by cO.cCOC desc"
Set oRs = GetRs(oSql)
dim aOS(6,1)
for i=0 to 6
aOS(i,0) = oRs("cOS")
aOS(i,1) = oRs("cCOC")
MaxValue = oRs("MaxCount")
oRs.MoveNext
next
oRs.close
if MaxValue = 0 then MaxValue = 1
vPoint = 150/MaxValue
sImage = "
系统统计图表
浏览器统计图表
"
for vL = 0 to 6
sHeight = aOs(vL,1)*vPoint
sImage = sImage & "
"&aOs(vL,0)&"
"&aOs(vL,1)&"
"
next
sImage = sImage & "
"
'浏览器
oSql = "select cE.cExplorer,cE.cCEC,MaxNum.MaxCount from cE,(select Max(cCEC) as MaxCount from cE) as MaxNum order by cE.cCEC desc"
Set oRs = GetRs(oSql)
''
dim aExp(6,1)
for i=0 to 6
aExp(i,0) = oRs("cExplorer")
aExp(i,1) = oRs("cCEC")
MaxValue = oRs("MaxCount")
oRs.Movenext
next
if MaxValue = 0 then MaxValue = 1
vPoint = 150/MaxValue
sImage = sImage & "
"
for vL = 0 to 6
sHeight = aExp(vL,1)*vPoint
sImage = sImage & "
"&aExp(vL,0)&"
"&aExp(vL,1)&"
"
next
sImage = sImage & "
"
call DrawTable("按操作系统和浏览器统计",sImage)
%>
<%
End Sub
Dim sWhereImage
Sub Sb_Where()
MaxValue = 0
oSql = "select cW.cWhere,cW.cCWC,MaxNum.MaxCount from cW,(select Max(cCWC) as MaxCount from cW) as MaxNum order by cW.cCWC desc"
vI = cLng(request("AbsolutePage"))
if vI <= 0 then vI=1
Set oRs = GetRs(oSql)
if not oRs.eof then
oRs.Pagesize = 20
Dim aWhere(19,1)
vPageCount = oRs.PageCount
oRs.AbsolutePage = vI
For vJ = 1 to oRs.PageSize
aWhere(vJ-1,0) = oRs("cWhere")
aWhere(vJ-1,1) = oRs("cCWC")
MaxValue = oRs("MaxCount")
oRs.MoveNext
if oRs.eof then exit for
next
page = PageSplit(vI,vPageCount,"where")
oRs.close
else
page = "暂无数据"
exit sub
end if
if MaxValue = 0 then MaxValue = 1
vPoint = 150/MaxValue
sWhereImage = "
访问者统计图表
"
for vL = 0 to 19
sHeight = aWhere(vL,1)*vPoint
if sHeight=0 then exit for
sWhereImage = sWhereImage & "
"&aWhere(vL,0)&"
"&aWhere(vL,1)&"
"
next
sWhereImage = sWhereImage & "
"
sWhereImage = sWhereImage & page & "
"
call DrawTable("访问者地区统计",sWhereImage)
%>
<%
end Sub
Dim sReImage
Sub Sb_Referer()
MaxValue = 0
oSql = "select cR.cReferer,cR.cCRC,MaxNum.MaxCount from cR,(select Max(cCRC) as MaxCount from cR) as MaxNum order by cR.cCRC desc"
vI = cLng(request("AbsolutePage"))
if vI <= 0 then vI=1
Set oRs = GetRs(oSql)
if not oRs.eof then
oRs.Pagesize = 20
Dim aWhere(19,1)
vPageCount = oRs.PageCount
oRs.AbsolutePage = vI
For vJ = 1 to oRs.PageSize
aWhere(vJ-1,0) = oRs("cReferer")
aWhere(vJ-1,1) = oRs("cCRC")
MaxValue = oRs("MaxCount")
oRs.MoveNext
if oRs.eof then exit for
next
page = PageSplit(vI,vPageCount,"referer")
oRs.close
else
page = "暂无数据"
exit sub
end if
if MaxValue = 0 then MaxValue = 1
vPoint = 150/MaxValue
sReImage = "
访问者来源统计图表
"
for vL = 0 to 19
sHeight = aWhere(vL,1)*vPoint
if sHeight=0 then exit for
sReImage = sReImage & "
<%
end Sub
Dim ShowMess
Sub Sb_Last20()
vSql = "select * from Last20Vister order by cCT desc,id asc"
Set vRs = GetRs(vSql)
if not vRs.eof then
ShowImage(vRs)
else
ShowMess = "暂无数据"
end if
vRs.close
Call DrawTable("最后来访者信息",ShowMess)
End Sub
Sub ShowImage(Rs)
ShowMess = ShowMess & "
时间
操作系统
浏览器
地区
IP地址
来源
"&chr(13)
for i = 1 to Rs.recordcount
if IsNull(Rs("cCT")) then exit for
ShowMess = ShowMess & "
"&chr(13)
Rs.Movenext
next
ShowMess = ShowMess & "
"
end sub
%>
<%
Function Fn_MaxDay(Mon)
Mon = cstr(Mon)
Select Case Mon
Case "1","3","5","7","8","10","12"
Fn_MaxDay = 31
Case "4","6","9","11"
Fn_Maxday = 30
Case "2"
if year(Now()) mod 4 = 0 then
Fn_Maxday = 29
else
Fn_Maxday = 28
end if
end Select
End Function%>
<% Sub DrawTable(title,str) %>