当前位置:首页 > 软件资讯 > 正文

完整的访问统计程序(二 程序篇)

2020-09-07 11:49:55 来源:娜曦网

原创:豆腐 请大家在转载和使用的时候 保留这条信息 */ /* dbcn.asp 创建数据库连接的 公用程序 */ <% function OpenConn() '创建数据库连接 dim ConnStr dim uid dim pwd dim db uid="BBC" pwd="BBC" db="BBC" Softserver="Softdepserver" Set Conn = Server.CreateObject("ADODB.Connection") ConnStr="Provider=SQLOLEDB.1;UID=" & uid & ";PWD=" & pwd & ";database=" & db & ";server=" & Softserver & "" Conn.Open ConnStr set OpenConn=Conn end function function OpenRst() '创建数据库记录集 set Rst=Server.CreateObject ("ADODB.Recordset") set OpenRst=Rst end function %> /* staticFunc 统计程序所需要用到的函数库 */

<% set conn=openConn() set rst=openRst() sub WriteDateTable(intStart,intEnd,strArray,ccount) '生成统计表 %> <%for i="intStart" to=""> <%next%>

<%=strarray(i)%> <% if rst.eof then setbar 0,ccount else if rst(1)=i then setbar rst(3),ccount if not rst.eof then rst.movenext else setbar 0,ccount end if end if %>

<% end sub %> <% sub setBar(num,ccount) '生成统计条 if ccount=0 then percent=0 else percent=cInt(num/ccount*10000)/100 end if strGif="bar.gif" %> " height="10" _src="<%=strGif%>"><%=percent%>% <% end sub %> <% sub writeDayStatic(userid) '生成日统计 i=0 dim strArray(100) for i=0 to 23 strArray(i)= cStr(i) & "点" & cstr(i+1) & "点" next i=0 set rst=openRst() strSQL="select sum(num) as ccount from dateStatic where userid='" & userid & "'" rst.open strSQL,conn,3,3 if isnull(Rst("ccount")) then ccount=0 else ccount=Rst("ccount") end if strSQL="select * from dateStatic where userid='" & userid & "' order by hourid" set rst=openRst() rst.open strSQL,conn,3,3 %> 访问总数<%=ccount%>

<%=num%>

<% writedatetable="" strarray="" ccount="">

<%writedatetable strarray="" ccount="">

<% end sub %> <% sub writeWeekStatic(userid) '生成周统计 i=0 dim strArray(7) strArray(0)="星期日" strArray(1)="星期一" strArray(2)="星期二" strArray(3)="星期三" strArray(4)="星期四" strArray(5)="星期五" strArray(6)="星期六" i=0 strSQL="select sum(num) as ccount from weekStatic where userid='" & userid & "'" set rst=openRst() rst.open strSQL,conn,3,3 if isnull(Rst("ccount")) then ccount=0 else ccount=Rst("ccount") end if strSQL="select * from WeekStatic where userid='" & userid & "' order by dayid" set rst=openRst() rst.open strSQL,conn,3,3 %> 访问总数<%=ccount%>

<% writedatetable="" strarray="" ccount="">

<% end sub %> <% sub writeMonthStatic(userid) '生成月统计 i=0 dim strArray(32) for i=1 to 31 strArray(i)=cStr(i) & "日" next i=0 strSQL="select sum(num) as ccount from MonthStatic where userid='" & userid & "'" set rst=openRst() rst.open strSQL,conn,3,3 if isnull(Rst("ccount")) then ccount=0 else ccount=Rst("ccount") end if strSQL="select * from MonthStatic where userid='" & userid & "' order by dayid" set rst=openRst() rst.open strSQL,conn,3,3 %> 访问总数<%=ccount%>

<% writedatetable="" strarray="" ccount=""> <% writedatetable="" strarray="" ccount="">

<% end sub %> <% sub writeYearStatic(userid) i=0 dim strArray(13) for i=1 to 12 strArray(i)=cStr(i) & "月" next i=0 strSQL="select sum(num) as ccount from YearStatic where userid='" & userid & "'" set rst=openRst() rst.open strSQL,conn,3,3 if isnull(Rst("ccount")) then ccount=0 else ccount=Rst("ccount") end if strSQL="select * from YearStatic where userid='" & userid & "' order by monthid" set rst=openRst() rst.open strSQL,conn,3,3 %> 访问总数<%=ccount%>

<% writedatetable="" strarray="" ccount=""> <% writedatetable="" strarray="" ccount="">

<% end sub %> <% sub WriteRecentInfo(userid) '显示访问者的浏览器分布 StrSQL="select top 10 * from accessstat where userid='" & userid & "' order by VisitTime desc" set rst=openRst() Rst.open StrSQL,Conn,3,1 %> <% for="" i="1" to="" rst.recordcount=""> <%> <% next="">

序 号来访时间IP地址所用操作系统所用浏览器类型浏览的上一页<%=i%> <%=rst("visittime")%> <%=rst("ipaddr")%> <%=rst("usesystem")%> <%=rst("browsertype")%> <a HREF=<%=rst("lastpage")%>><%response.write>

<% end sub %> <% sub WriteBrowserInfo(userid) Set Rst=OpenRst() strSQL="select count(*) as VisitCount from AccessStat where userid='" & userid & "'" Rst.open strSQL,Conn,3,1 TotalVisit=rst(0) StrSQL="select BrowserType,count(BrowserType) as visitcount from AccessStat where userid='" & userid & "' group by BrowserType order by VisitCount desc" Set Rst=OpenRst() Rst.open StrSQL,Conn,3,1 %> <%for i="1" to="" rst.recordcount=""> <%rst.movenext%> <% next="">

序 号所用浏览器类型访问比例尺表示访问次数<%=i%> <%=rst("browsertype")%> <%setbar totalvisit="">

<% end sub %> <% sub InsertData(userid) '处理浏览者信息 ExecUserInfo userid '处理日统计 ExecDayStatic userid '处理周统计 ExecWeekStatic userid '处理月统计 ExecMonthStatic userid '处理年统计 ExecYearStatic userid end sub %> <% sub ExecUserInfo(userid) '处理浏览者信息 strRet=Request.ServerVariables("HTTP_USER_AGENT") strArray=split(strRet,"(") strRet=left(strArray(1),len(strArray(1))-1) strArray=split(strRet,";") strBrowserName=strArray(1) '浏览器 strUseSystem=strArray(2) '用户操作系统 strPrPage=Request.ServerVariables("HTTP_REFERER") '从何而来 if strPrPage="" then strPrPage="http://" & Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("SCRIPT_NAME") end if strIPAddr=Request.ServerVariables ("REMOTE_ADDR") '用户IP地址 strSQL="insert into AccessStat(UserID,VisitTime,IPAddr,UseSystem,BrowserType,LastPage) " strSQL=strSQL & "values ('" & trim(userid) & "',getDate(),'" & trim(strIPAddr) & "','" strSQL=strSQL & trim(strUseSystem) & "','" & trim(strBrowserName) & "','" & trim(strPrPage) & "')" conn.execute strSQL end sub %> <% sub ExecDayStatic(userid) '处理每日的小时数据 strSQL="select * from DateStatic where dateid=datepart(dy,getdate()) and userid='" & userid & "'" set rst=openrst() rst.open strSQL,conn,3,3 if rst.eof and rst.bof then strSQL="delete from DateStatic where userid='" & userid & "'" conn.execute strSQL for i=0 to 23 strSQL="insert into DateStatic values(datepart(dy,getdate())," & cStr(i) & ",'" & userid & "',0)" conn.execute strSQL next end if strSQL="update datestatic set num=num + 1 where dateid=datepart(dy,getdate()) and hourid= datepart(hh,getdate()) and userid='" & userid & "'" conn.execute strSQL end sub %> <% sub ExecWeekStatic(userid) '处理每周的日数据 strSQL="select * from WeekStatic where weekid=datepart(ww,getdate()) and userid='" & userid & "'" set rst=openRst() rst.open strSQL,conn,3,3 if rst.eof and rst.bof then strSQL="delete from WeekStatic where userid='" & userid & "'" conn.execute strSQL for i=0 to 6 strSQL="insert into WeekStatic values(datepart(ww,getdate())," & cStr(i) & ",'" & userid & "',0)" conn.execute strSQL next end if strSQL="update weekstatic set num=num + 1 where weekid=datepart(ww,getdate()) and dayid+1= datepart(dw,getdate()) and userid='" & userid & "'" conn.execute strSQL end sub %> <% sub ExecMonthStatic(userid) '处理每月的日数据 strSQL="select * from MonthStatic where monthid=datepart(mm,getdate()) and userid='" & userid & "'" set rst=openRst() rst.open strSQL,conn,3,3 if rst.eof and rst.bof then strSQL="delete from MonthStatic where userid='" & userid & "'" conn.execute strSQL for i=1 to 31 strSQL="insert into MonthStatic values(datepart(mm,getdate())," & cStr(i) & ",'" & userid & "',0)" conn.execute strSQL next end if strSQL="update monthstatic set num=num + 1 where monthid=datepart(mm,getdate()) and dayid= datepart(dd,getdate())" conn.execute strSQL end sub %> <% sub ExecYearStatic(userid) '处理每年的月数据 strSQL="select * from YearStatic where yearid=datepart(yy,getdate()) and userid='" & userid & "'" set rst=openRst() rst.open strSQL,conn,3,3 if rst.eof and rst.bof then strSQL="delete from YearStatic where userid='" & userid & "'" conn.execute strSQL for i=1 to 12 strSQL="insert into YearStatic values(datepart(yy,getdate())," & cStr(i) & ",'" & userid & "',0)" conn.execute strSQL next end if strSQL="update YearStatic set num=num + 1 where Yearid=datepart(yy,getdate()) and Monthid= datepart(mm,getdate()) and userid='" & userid & "'" conn.execute strSQL end sub %>

相关视频

Copyright © 2013-2020 All Rights Reserved 娜曦网 版权所有