高手救命啊
<p>做一个在线考试系统</p><p>在客户端登陆成功后进入答题界面后却碰到一个奇怪的问题,不管怎么调都没反应。</p><p>预览提示如下:</p><li>错误类型:<br/>Microsoft VBScript 运行时错误 (0x800A01A8)<br/>缺少对象: ''<br/><b>/lxh/test.asp, 第 82 行</b><br/><p></p></li><li>浏览器类型:<br/>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon) <p></p></li><li>网页:<br/>GET /lxh/test.asp <p></p></li><li>时间:<br/>2007年1月12日, 2:26:41 </li><p></p><p>页面代码如下:</p><p><%@ Language=VBScript %> <br/><% option explicit %></p><p><!--#include file="conn.asp"--><br/><html><br/><head><br/><title>考试界面</title><br/></head><br/><body bgcolor="#FFFFFF" background=images/backimage.gif><br/><p align="center"><b><font face="宋体" size="5" color="#FF0000"><%=session("selectsubjectname")%>考试</font></b></p><br/><%<br/> '保存开始时间<br/> dim starttime<br/> session("starttime")=hour(now())*60+minute(now())<br/> starttime=session("starttime")<br/>%><br/><form method="POST" action="result.asp" name="testform"><br/> <table border="0" cellspacing="0" bordercolor="#111111" width="100%" ><br/> <tr><br/> <td width="100%" height="25"><b><font size="3" color="#000080">一、单项选择题(每题<%=session("singleper")%>分,共<%=session("singlenumber")%>题)</font></b></td><br/> </tr><br/> </table><br/> <%</p><p>dim i,sql,rs,count1,temp,strid1,strid2<br/>strid1=""<br/>strid2=""<br/>randomize<br/>for i=1 to session("singlenumber")<br/>set rs=server.createobject("adodb.recordset")<br/>sql="select * from question where subjectname='"&session("selectsubjectname") & "'and type='单选题' and haveselect=0 "<br/>rs.open sql,conn,3,2<br/>count1=rs.recordcount<br/>temp=fix(count1*rnd(10))<br/>rs.move temp<br/>rs("haveselect")=1<br/>'rs.update<br/>strid1=strid1 & rs("ID") & ","</p><p>%><br/> <table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#C0C0C0" width="100%" cellpadding="0"><br/> <tr><br/> <td width="100%" bgcolor="#EFEFEF" height="20">&nbsp;&nbsp;<b><%=i%>、<%=rs("question")%></b></td><br/> </tr><br/> <%<br/> if rs("A")<>"" then<br/> %><br/> <tr><br/> <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="NO<%=rs("id")%>" value="A">A、<%=rs("A")%></td><br/> </tr><br/> <%<br/> end if<br/> %> <%<br/> if rs("B")<>"" then<br/> %><br/> <tr><br/> <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="NO<%=rs("id")%>" value="B">B、<%=rs("B")%></td><br/> </tr><br/> <%<br/> end if<br/> %> <%<br/> if rs("C")<>"" then<br/> %><br/> <tr><br/> <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="NO<%=rs("id")%>" value="C">C、<%=rs("C")%></td><br/> </tr><br/> <%<br/> end if<br/> %> <%<br/> if rs("D")<>"" then<br/> %><br/> <tr><br/> <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="NO<%=rs("id")%>" value="D">D、<%=rs("D")%></td><br/> </tr><br/> <%<br/> end if<br/> %> <br/> </table><br/> <% <br/> rs.update<br/>next<br/><font color="#ff0000">rs.close //此处被提示错误!<br/></font>set rs=nothing<br/>%><br/> <table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3"><br/> <tr><br/> <td width="100%" height="25"><b><font color="#000080" size="3">二、多项选择题(每题<%=session("multiper")%>分,共<%=session("multinumber")%>题。每题至少有1项正确的答案,少选、多选、错选均不得分)</font></b></td><br/> </tr><br/> </table><br/> <%<br/>randomize<br/>for i=1 to session("multinumber")<br/>set rs=server.createobject("adodb.recordset")<br/>sql="select * from question where subjectname='"&session("selectsubjectname") & "'and type='多选题' and haveselect=0 "<br/>rs.open sql,conn,3,2<br/>count1=rs.recordcount<br/>temp=fix(count1*rnd(10))<br/>rs.move temp<br/>rs("haveselect")=1<br/>'rs.update<br/>strid2=strid2 & rs("ID") & ","</p><p>%><br/> <table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2"><br/> <tr><br/> <td width="100%" bgcolor="#EFEFEF" height="20">&nbsp;&nbsp;<b><%=i%>、<%=rs("question")%></b></td><br/> </tr><br/> <%<br/> if rs("A")<>"" then<br/> %><br/> <tr><br/> <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" name="NO<%=rs("id")%>" value="A">A、<%=rs("A")%></td><br/> </tr><br/> <%<br/> end if<br/> %> <%<br/> if rs("B")<>"" then<br/> %><br/> <tr><br/> <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" name="NO<%=rs("id")%>" value="B">B、<%=rs("B")%></td><br/> </tr><br/> <%<br/> end if<br/> %> <%<br/> if rs("C")<>"" then<br/> %><br/> <tr><br/> <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" name="NO<%=rs("id")%>" value="C">C、<%=rs("C")%></td><br/> </tr><br/> <%<br/> end if<br/> %> <%<br/> if rs("D")<>"" then<br/> %><br/> <tr><br/> <td width="100%">&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" name="NO<%=rs("id")%>" value="D">D、<%=rs("D")%></td><br/> </tr><br/> <%<br/> end if<br/> %> <br/> </table><br/> <% <br/> rs.update<br/>next<br/>rs.close</p><p>response.write("<input type='hidden' name='hidQuestID1' value=" & strID1 & ">")<br/>response.write("<input type='hidden' name='hidQuestID2' value=" & strID2 & ">")</p><p>set rs=nothing<br/>set rs=server.createobject("adodb.recordset")<br/>sql="select * from question where haveselect=1 "<br/>rs.open sql,conn,3,2<br/>rs.movefirst<br/> do while not rs.eof <br/> rs("haveselect")=0<br/> rs.update<br/> rs.movenext<br/> loop<br/>rs.close<br/>set rs=nothing<br/>call endConnection()<br/>'response.write(strid1)<br/>'response.write(strid2)<br/>%> <br/><p align=center><input type="submit" value="交卷" name="submit" ></p><br/></form><br/><%<br/>dim lefttime<br/>lefttime=1<br/>do while lefttime>0<br/>lefttime=session("testtime")-(hour(now())*60+minute(now())-session("starttime"))<br/>loop<br/>if lefttime=0 or lefttime<0 then<br/>%><br/><script language=vbscript><br/>msgbox "时间到了!请交卷" <br/></script><br/><%<br/>end if<br/>%><br/></body><br/></html> </p><p>不知道这个帖子发在哪里合适,就发这里了。斑竹请不要删啊~等着救命啊,高手帮帮忙啊</p> <p>搞着搞着又搞出新毛病来了,晕</p><p>这次是提示:</p><li>错误类型:<br/>Active Server Pages, ASP 0113 (0x80004005)<br/>超过了脚本运行的最长时间。可以为 Server.ScriptTimeOut 属性指定新值或更改 IIS 管理工具中的相应值来更改此限制。<br/><b>/lxh/test.asp</b><br/><p></p></li><li>浏览器类型:<br/>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon) <p></p></li><li>网页:<br/>GET /lxh/test.asp <p></p></li><li>时间:<br/>2007年1月12日, 2:48:10 <p></p><p></p></li><p></p><p>但是我在代码中加入这么一句:<%server.scripttimeout=9999%>。却没有任何反应了</p><p>真实郁闷死了,我都找不出哪里有死循环了55555555</p>[此贴子已经被作者于2007-1-12 2:51:01编辑过]
楼主的VBScript用的相当不错啊!<br/><br/>偶只用过VB拉拉UI,所以只能提一点参考意见了。<br/><br/>问题可能出在数据库连接上,可能用DM做的系统,自动生成的代码可能被修改了。<br/>仔细检查哦。。<br/> 呵呵,气氛不错,大家多讨论 <p>后来我发现这是个死循环</p><p>dim lefttime<br/>lefttime=1<br/>do while lefttime>0<br/>lefttime=session("testtime")-(hour(now())*60+minute(now())-session("starttime"))<br/>loop<br/>if lefttime=0 or lefttime<0 then<br/>%><br/><script language=vbscript><br/>msgbox "时间到了!请交卷" <br/></script><br/><%<br/>end if<br/>%><br/></p><p>因为当剩余考试时间(lefttime)还有时 DO WHILE 语句会不断的循环,直到考试结束,导致题目无法正常输出。</p><p>不知道怎么解决啊~继续请教!</p> 你这样写的目的是不是判断考试时间是否用完了?<br/>这个脚本会狂跑,因为根本没有给Cpuy一个休息的时间,<br/>最好加个定时器什么的,没隔一段时间检查考试时间一次。<br/> <p>做系统做的电脑都崩溃了,郁闷。</p><p>后来我把判断时间的那段代码单独拷出来生成一个页面,然后通过调用那个页面来控制考试时间。</p><p>却发现出现了楼上说的情况:考试一开始考试时间(lefttime)就循环到0了。</p><p>看来只能用最土的办法去一秒一秒的减了。</p>
页:
[1]