【说明】访问某聊天系统必须先注册,然后登录才可进行聊天。图4-1为注册页面,注册时需要输入用户名和密码及性别信息,数据库将记录这些信息。表4-1为利用Microsoft access创建数据库msg,数据库记录用户名、密码、性别、登录时间,IP地址及状态信息.
表4-1 数据库创建字段
以下是图4-1 所示页面部分代码,请仔细阅读该段代码,将(1)-(6)空缺代码补齐。<% Set MM_editCmd=Server.CreateObject("ADODB.Command")MM-editCmd.ActiveConnection=MM_connbbs_STRINGMM_editCmd.CommandText="INSERT INTO msg([user],upass,sex)VALUES(?,?,?)"MM_editCmd.PrePared=trueMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param1",202,1,225,Request.Form("user"))'adVarWCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param2",202,1,225,Request.Form("( 1 )"))'adVarWCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param3",202,1,225,Request.Form("sex"))'adVarWCharMM_editCmd.ExecuteMM_editCmd.ActiveConnection.Close%>< body>< from ACTION="<%=MM_editAction%>"METHOD="( 2 )"id="form1" name="form1">< p align="center">欢迎注册</p>< table width="500" border="0" align="center"cellpadding="1"cellspacing="2">< tr><td><div align="right">请输入用户名</div></td>< td> <input type="text"name=" ( 3 )"id="user"/></td>< /tr><tr>< td><div align="right">请输入密码</div></td>< td> <input type=" ( 4 )"name="upass"id="upass"/></td>< /tr><tr>< td><div align="right">重复输入密码</div></td> <td> <input type="text"name="pass2"id="pass2"/></td>< /tr><tr>< td><div align="right">请输入性别</div></td>< td> < input name="sex" type="radio "id="radio" value=" ( 5)"/>< lable for="sex">男<input type="radio" name="sex" id="radio2" value="female"/>女</label></td></tr><tr>< input type="submit" name="button" id="button" value="提交"/>< input type=" ( 6)"name="button2"id="button2"value="重置"/></td></tr>< /table>(1)~(6)备选答案:A.reset B.male C.postD.text E.user F.upass【问题2】(9分)用户注册成功后登录页面如图4-2所示。系统检查登录信息与数据库存储信息是否一致,如果一致则转到登录成功页面succ.asp。如果不一致则显示"警告:您输入信息有误!"下面是信息显示页面部分代码,请将下面代码补充完整。
<%Set conn=server.createobject("adodb.connection")Conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\wwwroot\bbs.mdb"If request.form("user")<>""thenU=request.form("user")P=request.form("upass")S=request.form("sex")Set rs=server.createobject("adodb.recordset")rs.open "select" * from msg where(7)="&u&" and(8)="&p&" andSex="&s&""",conn,1,3If.rs.(9)and rs.bof thenResponse.(10)("警告:您输入信息有误!")Elsers("t")=(11)()rs("(12)")=request.ServerVariables("remote_host")rs("zt")=1rs.updatesession("user")=usession("(13)")=sresponse.(14)"suss.asp"end ifrs.close()set rs=nothingend if%>
< body>< form id="form1"name="form1"method="post" action="user.asp">< p align="center">欢迎登陆</p>< div align="center"<td><div align="right">输入用户名</div></td>< td><label for="user"></label>< input type="text"name="user" id="user"/>& nbsp;</td>< td><div align="right">输入密码</div></td>< td><label for="upass"></label>& nbsp;< input type="text"name="upass"id="upass"/></td>< td><div align="right">您性别</div></td>< td> < input name="sex" type="radio" id="radio" value="male" checked="(15)"/>< label for="sex">男<input type="radio" name="sex" id="radio2" value="female"/>女</label></td>< td> </td>< td> < input type="submit" name="button" id="button" value="登陆"/> < input name="button2" type="submit" id="button2" onclick="MM_goToURL('parent',index.asp');return document.MM_returnValue" value="返回"/></td></tr>(7)~(15)备选答案:A.now B.ip C.checked D.eof E.upassF.user G.write H.sex I.redirect
【问题1】每空1分,(1)F (2)C (3) E (4)D (5)B (6)A【问题2】 (7)F (8) E (9)D (10) G (11)A (12)B (13)H (14)I (15)C
【解析】
【问题1】结合截图和代码可以知道,(1)这里应该是输入密码,查找上下文,可以再<input type=" ( 4 )"name="upass"id="upass"/> 这一行找到name属性石upass。(2)是form提交方式,只有post可以选。 (3)对应前面form表单中"Request.Form("user"))'adVarWChar"可以确定是 user,同理,第(4)结合上下文可以知道是text类型。第(5)结合表4-1中用户性别,male和female和上下文,就可以确定为男时,应该用male。第(6)空重置就是reset。【问题2】这里需要了解asp通过sql操作数据基本命令代码,(7)所在位置应该是一个字段,从后面&u&这个代码可以看出,这里连接字符是用户输入用户名,因此查找表4-1中对应用户名字段是user,同样(8)是upass,(9)空这里是一个特殊情况,用bof和eof同时判断为真,那这个记录集就是一个空集,也就是找不到对应信息。 (10)空是为了输出一个信息,可以用response.write. (11)位置为用户存在情况下,保存用户一些信息,如登录时间,IP地址和状态等,结合表4-1中t这一项意思和选项以及11空后面括号,这里应该是一个asp内置函数,只有now()才能获得当前时间。(12)查表4-1知道,这个部分要保存远端主机IP地址,因此是IP。(13)从S=request.form("sex") 可以知道,这里保存是性别,也就是sex。(14)登录成功,转向新页面,因此事redirect。15空只剩下C了。