回 帖 发 新 帖 刷新版面

主题:求救:请懂asp的看下这个 global.asa 文件哪里出了错(耐心看下)

     这个global.asa文件用来实现使用数据库的网站计数器。数据库用的是Access,问题是:每次访问网站的时候计数器能从数据库中读出application("PageCounter")的值,当结束访问网站时application("PageCounter")的值不会被保存到数据库中。代码如下:[color=008000]大家重点看下会话结束时保存统计访问网站数量那段(sub Appication_Onend)[/color]

 <script language=VBScript" runat="Server">
  sub Application_OnStart
     application.lock
     dim sql,rs.conn
     on error resume next
     set conn=server.createobject("ADODB.Connection")
     DBPath=Server.MapPath("data/PageCounter.mdb")
     conn.open"provider=microsoft.jet.oledb.4.0;data source="&DBpath
     sql="select VISIT_TIMES from PageCounter where PAGE_URL='default.asp'"
     set rs=conn.execute(sql)
     if err<>0or rs.fidlds.count<>1 then
           application("PageCounter")=-1
     else
           applicatin("PageCounter")=rs("VISIT_TIMES")
     end if
     set conn=nothing
     set rs=nothing
     set sql=nothing
     application.unlock
end sub

sub Application_OnEnd
     application.lock
     IF IsObject(conn) Then
         set rs=nothing
         conn.close
         set conn=nothing
         set sr=nothing
         set sql=nothing
      END If
      dim sql,rs,conn
      on error resume next
      set conn=server.createobject("ADODB.Connection")
      DBPath=Server.MapPath("data/PageCounter.mdb")
      conn.open"provider=microsoft.jet.oledb.4.0;data source="&DBpath  
      sql="update PageCounter set VISIT_TIMES=applicatio("PageCounter")"_
      &where PAGE_URL='default.asp'"
      conn.execute(sql)
      set conn=nothing
      set rs=nothing
      set sql=nothing
      application.unlock
   end sub
 
   sub Session_OnStart
       if application("PageCounter")>-1 then
            application.lock
            applicaton("PageCounter")=application("PageCounter")+1
            application.unlock
            session("UserName")=""
         end if
    end sub
   sub Seesion_OnEnd
        session.contents.remove("UserName")
    end sub
</script>

回复列表 (共4个回复)

沙发

Seesion才是访问控制的吧
Application是服务器开启和关闭控制的

板凳


   放了几个星期的贴总算有人回复,不管三七二十一先加分。
   
   你说的那个我知道,把那段放在Application_onEnd 就是为了实现当服务器重起时或暂时关闭时把网站访问量数据保存到外部存储器上,主要问题就是当服务器重起是,他不执行Application_onEnd下面的语句

3 楼

我想请问你是把这个global.asa文件直接copy下来的吗?如果是,那么我觉得应该是你的变量写错了吧。以下的是我从你的留言中发现的问题,象第二行的变量跟第四行的变量少了一个字母o ,而跟第六行的变量则少了一个字母n ,而而跟第十行的第一个变量则少了一个字母i 。不知道是不是这个原因,但你先看一看到底你想存的变量跟你想读的变量究竟是不是同一个。

1   if err<>0or rs.fidlds.count<>1 then
2           application("PageCounter")=-1
3     else
4           applicatin("PageCounter")=rs("VISIT_TIMES")
5     end if

6      sql="update PageCounter set VISIT_TIMES=applicatio("PageCounter")"_
7      &where PAGE_URL='default.asp'"

8       if application("PageCounter")>-1 then
9            application.lock
10            applicaton("PageCounter")=application("PageCounter")+1
11            application.unlock
12            session("UserName")=""
13         end if

4 楼


给你的网站做了宣传还有钱赚
提高了网站流量上升了点击率
这是哪等好事?
呵呵
就是有这样的好事
免费注册广链网吧
[url=http://www.adlinks.cn]www.adlinks.cn[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册