找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 227|回复: 3

求助 ASP的一个不解

[复制链接]
发表于 2006-8-24 14:00:00 | 显示全部楼层 |阅读模式

前两天编了个计数器 记IP的 测试了两天发现不对 有错

天 改变后   记录却没有按照我向的更新 看了半天也找不到错

看看 咱们论坛里可有人能帮我看看

=======代码开始===========


<%
\'数据库链接
 dim jsconn
 set jsconn = server.CreateObject("adodb.connection")
 jsconn.connectionstring = "Driver={Microsoft Access Driver (*.mdb)};Dbq="&_
     server.MapPath("/jishuqi/db1.mdb")
 jsconn.open
 \'建立RECORDSET
  set jstj = server.CreateObject("ADODB.recordset")
  jstj.open "select * from tj where id =1",jsconn,2,2,1
  
  set js = server.CreateObject("ADODB.recordset")
  js.open "ip",jsconn,2,2,2
\'获得IP函数 
function getip()
 getip = request.ServerVariables("http_x_forwarded_for")
 if getip = "" then
  getip = request.ServerVariables("remote_addr")
 end if
end function

\'获得URL函数
function geturl()
 geturl=request.ServerVariables("HTTP_REFERER")
 if geturl = "" then
  geturl = "天外飞来"
 end if
end function

\'检测是否登陆过 函数
function checkip()
 if request.Cookies("jishu")="" then
  response.Cookies("jishu")="True"
  response.Cookies("jishu").expires = DateAdd("h", 1, now)
  checkip = "False"
 else
  checkip = "True"
 end if
end function

\'天数改变函数
sub changeday()
  today = jstj("today")
  jstj("today")=0
  jstj("yesterday")=today
  if today >= jstj("top") then
   jstj("top")=today
  end if
  jstj.update
end sub

\'删除IP记录函数
sub delip()

  sqlstr="delete * from ip where start <=#"&date()&"#"
  jsconn.execute(sqlstr)
end sub

\'月份改变函数
sub changemonth()
  changeday()
  tmonth = jstj("month")
  jstj("month")=0
  jstj("lastmonth")=tmonth
  jstj.update
  delip()
end sub

\'检测时间是否改变 函数
sub checktime()
 temp = application("js_time")
 if temp = empty then
  application("js_time") = date()
 end if
 if application("js_time") <> date() then
  if month(application("js_time")) <> month(date()) then
   changemonth()
  else
   changeday()
  end if
  application("js_time") = date()
 end if
end sub

\'主要内容开始
if checkip() = "False" then
  checktime()
  
   js.addnew
    js("ip")=getip()
    js("url")=geturl()
    js("start")=now()
   js.update
  
   today = jstj("today")
   tmonth = jstj("month")
    jstj("today")=today+1
    jstj("month")=tmonth+1
    jstj("sum")=jstj("sum")+1
   jstj.update

  
end if
  \'显示IP记录
  response.Write("<a href=?action=view>今日"&jstj("today")&"位</a> <a href=?action=view&sdate="&dateadd("d",-1,date())&">昨日"&jstj("yesterday")&"位</a> 本月"&jstj("month")&"位 上月"&jstj("lastmonth")&"位 共"&jstj("sum")&"位 日最高"&jstj("top")&"位")
  
  action=request("action")
  if action = "view" then
   sdate = request("sdate")
   if sdate = "" then
    sdate = date()
   end if
   
   set jst = server.CreateObject("ADODB.recordset")
   jst.open "select * from ip where start >=#"&sdate&"# and start <=#"&dateadd("d",1,sdate)&"#",jsconn,2,2,1
    if not jst.eof and not jst.bof then
     response.Write("<table><tr><td>编号</td><td>IP</td><td>URL</td><td>TIME</td></tr>")
     jst.movefirst
     while not jst.eof
     response.Write("<tr><td>"&jst("id")&"</td><td>"&jst("ip")&"</td><td>"&jst("url")&"</td><td>"&jst("start")&"</td></tr>")
     jst.movenext
     wend
     response.Write("</table>")
    end if
   jst.close
   set jst = nothing
  end if
  
\'数据库关闭
   jstj.close
   set jstj = nothing
  js.close
  set js = nothing
 jsconn.close
 set jsconn=nothing
%>

=======代码结束===========

地址是 fly.ahstu.cn

发表于 2006-8-24 14:35:00 | 显示全部楼层

把数据库结构也发上来看看。

你描述的也不是很清楚,“错天”是什么意思

回复

使用道具 举报

 楼主| 发表于 2006-8-24 15:38:00 | 显示全部楼层
<p>计数器 数据库的地址给你</p><p>fly.ahstu.cn/jishuqi/db1.mdb</p><p>就是把今天访问人数的记录放到昨天的记录里面</p><p>一天一天的变</p>
[此贴子已经被作者于2006-8-24 15:38:38编辑过]
回复

使用道具 举报

发表于 2006-8-24 22:13:00 | 显示全部楼层
看不懂&nbsp; 技术的帖子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表