⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stat.asp

📁 淘特网独自开发的一套访问统计系统
💻 ASP
字号:
<!-- #INCLUDE FILE = "conn.asp" -->
<!-- #INCLUDE FILE = "date.asp" -->
<!-- #INCLUDE FILE = "function.asp" -->
<%
DIM Rs,strReferrer,strURL,pageUrl,fromip,sessionidStr,UserSessionId
fromip=GetIp()
strReferrer =request.QueryString("ref")
strURL = Request.ServerVariables("URL")
pageUrl=trim(request.QueryString("page"))
If strURL = "" Then
strURL = "(unknown)"
End If

iDay = DatePart("w", strDate)-1

UserSessionId=request.Cookies("TotStat")("UserId")
if(UserSessionId="" or isempty(UserSessionId)) then
	UserSessionId=Session("UserId")	
end if

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'更新在线用户
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
if statonlineuser=true then
	if isempty(application(cache_prefix&"_onlineaborttime")) then
		application.Lock()
		application(cache_prefix&"_onlineaborttime")=DateAdd("s",onlineuseraborttime,now)
		application.UnLock()
	end if
	if(CDate(application(cache_prefix&"_onlineaborttime"))<now) then
		If databaseType = 1 Then	
			sql="delete from t_onlineuser where dateDiff('s',f_timevisite,'"&now()&"')>"&onlineusertime
		else
			sql="delete from t_onlineuser where dateDiff(s,f_timevisite,'"&now()&"')>"&onlineusertime
		end if
		conn.execute(sql)
		application(cache_prefix&"_onlineaborttime")=DateAdd("s",onlineuseraborttime,now)
	end if
	Set Rs=Server.CreateObject("ADODB.Recordset")
	Rs.open "select * from t_onlineuser where f_sessionid='"&Session.SessionID&"'",conn,3,3
	if Rs.eof then
		Rs.addnew
		Rs("f_pageurl")=pageUrl
		Rs("f_from")=strReferrer
		Rs("f_timevisite")=strDateTime
		Rs("f_sessionid")=Session.SessionID
		Rs("f_ip")=GetIp()
		Rs.update
	else
		Rs.MoveFirst
		Rs("f_pageurl")=pageUrl
		Rs("f_from")=strReferrer
		Rs("f_timevisite")=strDateTime
		Rs("f_sessionid")=Session.SessionID
		Rs("f_ip")=GetIp()
		Rs.update
	end if
	Rs.close
	set Rs=nothing
end if
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'更新当天统计
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
if(UserSessionId="" or len(UserSessionId)<1) then
dim sql_day
If databaseType = 1 Then
	sql_day = "SELECT * FROM t_daily WHERE f_date=#"&strDate&"#"
Else
	sql_day = "SELECT * FROM t_daily WHERE CONVERT(varchar(10),f_date,121) = '"&strDate&"'"
End If

Set Rs=Server.CreateObject("ADODB.Recordset")
Rs.open sql_day,conn,3,3
if Rs.eof then
	Rs.addnew
	Rs("f_date")=strDate
	Rs("f_time")=strTime
	Rs("f_week")=iDay
	Rs("f_hits")=1
	Rs.update
else
	Rs.MoveFirst
	Rs("f_hits")=Rs("f_hits")+1
	Rs.update
end if

Rs.close
set Rs=nothing
end if
''''''''''''''''''''''''''''''''''''''''''''''''''''''
'更新小时统计
''''''''''''''''''''''''''''''''''''''''''''''''''''''
if(UserSessionId="" or isempty(UserSessionId)) then
	conn.execute("update t_hour set hits=hits+1 where id="&DATEPART("h", strTime))
end if
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'更新PV总量
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
if isempty(application("statUpdateTime")) then
	application.Lock()
	application("statUpdateTime")=DateAdd("s",cachetime,now)
	application.UnLock()
end if
if(UserSessionId="" or isempty(UserSessionId)) then
	conn.execute("update t_global set f_totalip=f_totalip+1 where id=1")
end if
if(application("statNum")<>"") then
	application.Lock()
	application("statNum")=application("statNum")+1
	application.UnLock()
else
	set Rs=conn.execute("select f_totalpv from t_global")
	if not Rs.eof and not Rs.bof then
		application.Lock()
		application("statNum")=Rs(0)+1
		application.UnLock()
	end if
	Rs.close()
	set Rs=nothing
end if
if(CDate(application("statUpdateTime"))<now) then
	conn.execute("update t_global set f_totalpv="&application("statNum")&" where id=1")
	application.Lock()
	application("statUpdateTime")=DateAdd("s",cachetime,now)
	application.UnLock()
end if
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'页面访问统计
''''''''''''''''''''''''''''''''''''''''''''''''''''''
if statpage=true then
dim sql_page
If databaseType = 1 Then
	sql_page = "SELECT * FROM t_page WHERE f_date=#"&strDate&"# and f_pageurl='"&pageUrl&"'"
Else
	sql_page = "SELECT * FROM t_page WHERE CONVERT(varchar(10),f_date,121) = '"&strDate&"' and f_pageurl='"&pageUrl&"'"
End If
Set Rs=Server.CreateObject("ADODB.Recordset")
Rs.open sql_page,conn,3,3
if Rs.eof then
	Rs.addnew
	Rs("f_pageurl")=pageUrl
	Rs("f_date")=strDate
	Rs("f_time")=strTime
	Rs("f_hits")=1
	Rs.update
else
	Rs.MoveFirst
	Rs("f_hits")=Rs("f_hits")+1
	Rs.update
end if
Rs.close
set Rs=nothing
end if
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'来路访问统计
''''''''''''''''''''''''''''''''''''''''''''''''''''''
if statfrom=true then
	if(UserSessionId="" or isempty(UserSessionId)) then
	dim sql_from
	If databaseType = 1 Then
		sql_from = "SELECT * FROM t_from WHERE f_date=#"&strDate&"# and f_fromurl='"&strReferrer&"'"
	Else
		sql_from = "SELECT * FROM t_from WHERE CONVERT(varchar(10),f_date,121) = '"&strDate&"' and f_fromurl='"&strReferrer&"'"
	End If
	Set Rs=Server.CreateObject("ADODB.Recordset")
	Rs.open sql_from,conn,3,3
	if Rs.eof then
		Rs.addnew
		Rs("f_fromurl")=strReferrer
		Rs("f_date")=strDate	
		Rs("f_hits")=1
		Rs.update
	else
		Rs.MoveFirst
		Rs("f_hits")=Rs("f_hits")+1
		Rs.update
	end if
	Rs.close
	set Rs=nothing
	end if
end if
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'更新关健字统计
''''''''''''''''''''''''''''''''''''''''''''''''''''''
if statkeyword=true then
	dim sql_key,strkeyword
	strkeyword=findKeystr(strReferrer)

	if(strkeyword<>"" and len(strkeyword)>0) then	
		If databaseType = 1 Then
			sql_key = "SELECT * FROM t_keyword WHERE f_date=#"&strDate&"# and f_keyword='"&strkeyword&"'"
		Else
			sql_key = "SELECT * FROM t_keyword WHERE CONVERT(varchar(10),f_date,121) = '"&strDate&"' and f_keyword='"&strkeyword&"'"
		End If	
		Set Rs=Server.CreateObject("ADODB.Recordset")
		Rs.open sql_key,conn,3,3
		if Rs.eof then
			Rs.addnew
			Rs("f_keyword")=strkeyword
			Rs("f_fromurl")=strReferrer
			Rs("f_date")=strDate	
			Rs("f_hits")=1
			Rs.update
		else
			Rs.MoveFirst
			Rs("f_hits")=Rs("f_hits")+1
			Rs.update
		end if	
		Rs.close
		set Rs=nothing
	end if
end if
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'IP统计
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
if statip=true then
	dim sql_fromip
	If databaseType = 1 Then
		sql_fromip = "SELECT * FROM t_ip WHERE f_date=#"&strDate&"# and f_ip='"&fromip&"'"
	Else
		sql_fromip = "SELECT * FROM t_ip WHERE CONVERT(varchar(10),f_date,121) = '"&strDate&"' and f_ip='"&fromip&"'"
	End If
	Set Rs=Server.CreateObject("ADODB.Recordset")
	Rs.open sql_fromip,conn,3,3
	if Rs.eof then
		Rs.addnew
		Rs("f_ip")=fromip
		Rs("f_date")=strDate	
		Rs("f_hits")=1
		Rs.update
	else
		Rs.MoveFirst
		Rs("f_hits")=Rs("f_hits")+1
		Rs.update
	end if
	Rs.close
	set Rs=nothing
end if

'唯一用户设置
if(UserSessionId="" or isempty(UserSessionId)) then
	sessionidStr=Session.SessionID
	Response.Cookies("TotStat").Path ="/"
	Response.Cookies("TotStat").Expires = DateAdd("h", cTimeOffset+24, Now())
	Response.Cookies("TotStat")("UserId")=sessionidStr	
	Session("UserId")=sessionidStr
	Session.Timeout = 300
end if
conn.close
set conn=nothing
%>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -