您的位置:首页精文荟萃软件资讯 → 完整的访问统计程序(二  程序篇)

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

时间:2004/10/7 19:17:00来源:本站整理作者:蓝点我要评论(0)

/*

  原创:豆腐

  请大家在转载和使用的时候  保留这条信息

*/

/* 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"><%=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" 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

%>



相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本