这段代码运行时提示缺少对象,看看问题在哪里?

时间:2021-07-06 20:24:57
下面这段代码在运行时总是提示缺少对象。这是一个用户注册时的输入资料页面,第一次调用时,没有提示错误,但只要一按“提交”按钮,就出现“行265缺少对象”的错误,这段代码总共只有247行。
高手帮我看一看,指点一下,耽误你喝茶了!
由于它提示贴子太长了,我删除了<body>部分。

<%
   dim WINNT_CHINESE 
   function strLength(str)
       ON ERROR RESUME NEXT
       dim WINNT_CHINESE
       WINNT_CHINESE    = (len("用户")=2)
       if WINNT_CHINESE then
          dim l,t,c
          dim i
          l=len(str)
          t=l
          for i=1 to l
             c=asc(mid(str,i,1))
             if c<0 then c=c+65536
             if c>255 then
                t=t+1
             end if
          next
          strLength=t
       else 
          strLength=len(str)
       end if
       if err.number<>0 then err.clear
   end function 

dim rs,sql
dim nickname,passwd
if request("action")="save" then
  if request("nickname")="" then
  Response.write "<script>alert('昵称是必须填写的!');history.back();</script>"
  Response.end
  else 
  nickname=trim(request.form("nickname"))
  end if
  if request("passwd")="" then
  Response.write "<script>alert('密码是必须填写的!');history.back();</script>"
  Response.end
  elseif request("passwd2")="" then
  Response.write "<script>alert('验证密码是必须填写的!');history.back();</script>"
  Response.end
  elseif request("passwd")<>request("passwd2") then
  Response.write "<script>alert('密码和验证密码必须是一样的!');history.back();</script>"
  Response.end 
  else
  passwd=trim(request.form("passwd"))
  end if
  if request("email")<>"" then
  if instr(request("email"),"@")<1 or instr(request("email"),".")<1 then
  Response.write "<script>alert('请填写正确的EMAIL地址!');history.back();</script>"
  Response.end
  end if
  end if
  if request("web")<>"" then
  if instr(request("web"),"http://")<1 or instr(request("web"),".")<1 then
  Response.write "<script>alert('请填写正确的网站地址!');history.back();</script>"
  Response.end
  end if
  end if
  if request("soft")<>"" then
  if strLength(trim(request("soft")))>50 then
  Response.write "<script>alert('常用软件不能超过50个字符!');history.back();</script>"
  Response.end
  end if
  end if
  if request("techang")<>"" then
  if strLength(trim(request("techang")))>50 then
  Response.write "<script>alert('个人特长不能超过50个字符!');history.back();</script>"
  Response.end
  end if
  end if
  if request("oicq")<>"" then
  if not isnumeric(trim(request("oicq"))) then
  Response.write "<script>alert('oicq是由数字组成的!');history.back();</script>"
  Response.end
  end if
  end if
 %>
 <!-- #include file="conn.asp" -->
 <% dim srday
 srday=request.Form("i1")&"-"&request.Form("i2")&"-"&request.Form("i3")
set rs=server.createobject("adodb.recordset")
sql = "select * from [user] where nickname='"&nickname&"'"
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
Response.write "<script>alert('【"&nickname&"】昵称已经被别人注册了,请另外选择一个昵称!');history.back();</script>"
Response.end
end if
rs.close
sql = "select * from [user] where (userid is null)"
rs.open sql,conn,1,3
rs.addnew
if request("username")<>"" then
rs("username")=trim(request.Form("username"))
end if
rs("nickname")=nickname
rs("passwd")=passwd
if request("email")<>"" then
rs("email")=trim(request.Form("email"))
end if
if request("sex")=1 then
rs("sex")=true
end if
if isdate(srday) then
rs("shengri")=srday
end if
if request("web")<>"" then
rs("url")=trim(request.Form("web"))
end if
if request("oicq")<>"" then
rs("oicq")=trim(request.Form("oicq"))
end if
if request("soft")<>"" then
rs("soft")=trim(request.Form("soft"))
end if
if request("techang")<>"" then
rs("techang")=trim(request.Form("techang"))
end if
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
Response.Redirect "login.asp"
else
%>
<html>
<head>
<title>用户注册页</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="FORUM.CSS" type="text/css">
</head

11 个解决方案

#1


是有点长,呵呵。

#2


看一下是不是记录集和其它包含文共详了。

#3


这里的行数和源代码里的行数不一定一致。

使用asp生成的代码就有这个问题,因为有些asp代码在生成的html里算空行的。

你先打开这个页面,然后查看源文件,复制粘贴到dreamweaver里面,再根据dreamweaver里的行数找到出错的地方。

#4


你在运行的页面上按右键查看源代码
ctrl + G 输入265行,看看是哪行的错!!

#5


<!-- #include file="conn.asp" -->

这里的代码页被计算在内了

#6


if not(rs.eof and rs.bof) then
Response.write "<script>alert('【"&nickname&"】昵称已经被别人注册了,请另外选择一个昵称!');history.back();</script>"
Response.end
end if
rs.close
sql = "select * from [user] where (userid is null)"
rs.open sql,conn,1,3
rs.addnew



rs.close没必要的

#7


太长了:)没时间细读

#8


缺少对象 可能在函数中少了必要的参数。
常常出现在括号和"."操作符附近。
楼主留意下。

#9


butcher2002(发言仅代表个人观点,不保证正确)

rs.close没必要的

------------------------------

在打开之后随时close是个好的编程习惯。

#10


最后一行head好象掉了个>,不过我想可能是楼主复制时候复掉了

但是你最后
else
%>
后好象没用<%end if %>结束?

#11


谢谢各位积极的支持,楼上“zmhqyw(烈) ”说得没错,他的方法帮我找到下面这一行:
                <input type="submit" name="Submit3" value="提交申请" onClick="MM_validateForm('姓名','','R','昵称','','R','year','','NisNum','icq','','NisNum','oicq','','NisNum','email','','RisEmail','tel','','NisNum','shouji','','NisNum','bp','','NisNum','soft','','R','techang','','R','密码','','R');return document.MM_returnValue" class="buttonface">

我估计问题就出在这里,这就是“提交”按钮的代码,因为一按“提交”就出错,肯定是里面的参数有问题,具体是哪一个呢?怎么查?

#1


是有点长,呵呵。

#2


看一下是不是记录集和其它包含文共详了。

#3


这里的行数和源代码里的行数不一定一致。

使用asp生成的代码就有这个问题,因为有些asp代码在生成的html里算空行的。

你先打开这个页面,然后查看源文件,复制粘贴到dreamweaver里面,再根据dreamweaver里的行数找到出错的地方。

#4


你在运行的页面上按右键查看源代码
ctrl + G 输入265行,看看是哪行的错!!

#5


<!-- #include file="conn.asp" -->

这里的代码页被计算在内了

#6


if not(rs.eof and rs.bof) then
Response.write "<script>alert('【"&nickname&"】昵称已经被别人注册了,请另外选择一个昵称!');history.back();</script>"
Response.end
end if
rs.close
sql = "select * from [user] where (userid is null)"
rs.open sql,conn,1,3
rs.addnew



rs.close没必要的

#7


太长了:)没时间细读

#8


缺少对象 可能在函数中少了必要的参数。
常常出现在括号和"."操作符附近。
楼主留意下。

#9


butcher2002(发言仅代表个人观点,不保证正确)

rs.close没必要的

------------------------------

在打开之后随时close是个好的编程习惯。

#10


最后一行head好象掉了个>,不过我想可能是楼主复制时候复掉了

但是你最后
else
%>
后好象没用<%end if %>结束?

#11


谢谢各位积极的支持,楼上“zmhqyw(烈) ”说得没错,他的方法帮我找到下面这一行:
                <input type="submit" name="Submit3" value="提交申请" onClick="MM_validateForm('姓名','','R','昵称','','R','year','','NisNum','icq','','NisNum','oicq','','NisNum','email','','RisEmail','tel','','NisNum','shouji','','NisNum','bp','','NisNum','soft','','R','techang','','R','密码','','R');return document.MM_returnValue" class="buttonface">

我估计问题就出在这里,这就是“提交”按钮的代码,因为一按“提交”就出错,肯定是里面的参数有问题,具体是哪一个呢?怎么查?