菜鸟求助 关于ASP考试系统的问题

inpaninpan 2009-05-08 10:08:37
刚学asp 只是一个菜鸟中的菜鸟
最近遇到一个问题 希望各位热心人帮助一下
为什么我无论答对几道题目 显示的都是您共答对1道题目???
以下是代码:
<!--#include file="conn.asp"-->
<%
dim sql,rs,i,score,answer
score=0
i=0
sql="select * from blank"
Set rs=Server.CreateObject("ADODB.recordset")
rs.open sql,conn,1,3
%>

<body>
<form id="form1" name="form1" method="post" action="do_blank.asp">
<table width="655" border="1">
<tr>
<td width="67">题号</td>
<td width="200">题目</td>
<td width="96">答案</td>
</tr>
<%
while not rs.eof
i=i+1
if i mod 2 <>0 then
%>
<tr bgcolor="#FFFF00">
<%else%>
<tr bgcolor="#66FFFF">
<%end if%>


<td height="24"><%=i%></td>
<td><label></label>
<label>
<fieldset><%=rs("topic")%></fieldset></label></td>
<td><label>
<input name="<%=i%>" type="text" id="<%=i%>" />
<input name="id<%=i%>" type="hidden" id="id<%=i%>" value="<%=rs("id")%>">
</label></td>
</tr>
<%
rs.movenext
wend
rs.close
%>
</table>
<p>
<label>
<input type="submit" name="Submit" value="check" />
</label>
</p>
</form>
</body>
</html>








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

dim answer,sql,rs,score,i
i=0
score=0
sql="select * from blank"
Set rs=Server.CreateObject("ADODB.recordset")
rs.open sql,conn,1,3
while not rs.eof
i=i+1
answer=Request.Form(i)
if answer=rs("answer") then
score=score+1
else
score=score
end if
rs.movenext
wend

response.write "您共答对"&score&"道题目"

rs.close
%>


...全文
42 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Msxindl_Com 2009-05-08
  • 打赏
  • 举报
回复
name最好不要用纯数字,应该是 纯字母 或 数字加字母 的方式来命名.
inpaninpan 2009-05-08
  • 打赏
  • 举报
回复
谢谢 ......
smartcatiboy 2009-05-08
  • 打赏
  • 举报
回复
input name=" <%=i%>"
表单名不要用纯数字,因为request.form(i)会误解成按顺序索引读取,取值可能是

form(1)= <input name="1" 的值
form(2)= <input name="id 1" type="hidden" 的值
form(3)= <input name="2" 的值
form(4)= <input name="id 2" type="hidden" 的值
form(5)= <input name="3" 的值
form(6)= <input name="id 3" type="hidden" 的值


-----------

另外你必须在服务器保存每张原始试题记录id列表,否者客户端可能会发送同样的题目Id和结果来骗取分数,这是大bug哦
比方对方发送
<name="答案1" value="1的答案"/>
<name="Id1" value="1"/>
<name="答案1" value="1的答案"/>
<name="Id1" value="1"/>
<name="答案1" value="1的答案"/>
<name="Id1" value="1"/>
<name="答案1" value="1的答案"/>
<name="Id1" value="1"/>
.....

用你的判别办法,就是满分了。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧