|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。信息社会对人的学历、本质请求愈来愈高,人们为了找到出路更好、支出加倍诱人的事情岗亭,必需经由过程林林总总的测验如注册管帐师资历测验、司法资历测验等等,而林林总总的试题材料也应运而生,但一切的材料所共有的一个弱点就是利用上的不便利、不天真、及效力不高,本网上答题体系恰是为了填补这些诸多方便而体例的、合适于局域网并能在单机上运转的体系,上面就具体先容本体系的体例及利用办法。
1、界面
如图所示:
</IMG>
2、程序构成
本体系由Index.asp、Lkzk.asp、Save.asp、Db0.fun四个小程序及Access数据库文件lkzk.mdb构成各程序的功效分离是:
1.Index.asp是框架网页,卖力导进Lkzk.asp、Save.asp两个子网页构成完全的程序页面。
2.Lkzk.asp是随机出题答题的交互页面熟成程序,次要完成随机选题、标题显现、谜底输出及准确率、总答题数显现等功效。
3.Save.asp完成答题正误判别、显现及成就挂号(按客户端IP地点)。
4.Db0.fun包括翻开Access数据库的多个函数(Lkzk.asp、Save.asp都用到的)。
5.lkzk.mdbAccess数据库文件,由表“IP”和表“题库”构成。
表(IP)由编号字段ID(数字格局)、客户机地点字段IP(文本格局)、毛病谜底数字段nnn(数字格局)、准确谜底数字段yyy(数字格局)所构成;
表“题库”由题号字段ID(数字格局)、单选多选标志字段dx(数字格局)、谜底字段xz(文本格局)、试题内容字段na(备注格局)所构成。(注:试题内容的选择部分必需为“A.……B.……C.……D.……”格局)
---------------Index.Asp-----------------
<html>
<head>
<title>网下属测验题库</title>
</head>
<framesetrows="87%,*"framespacing="0">
<framename="top"src="lkzk.asp"scrolling="auto">
<framename="bottom"scrolling="auto"marginwidth="0"marginheight="0">
<noframes>
<body>
<p>此网页利用了框架,但您的扫瞄器不撑持框架。</p>
</body>
</noframes>
</frameset>
</html>
--------------Lkzk.asp-------------
<!--#includevirtual="/lkzk/DB0.fun"-->
<%
Setrsu2=GetMdbStaticRecordset("lkzk.mdb","IP")
Setrs=GetMdbStaticRecordset("lkzk.mdb","题库")
%>
<HTML>
<head>
<title>网下属测验题库</title>
</head>
<BODY>
<fontsize="4"color="#000080">司测验题库
<%
ClientIP=Request.ServerVariables("REMOTE_ADDR")
userIP=Right(ClientIP,Len(ClientIP)-InStrRev(ClientIP,"."))
rsu2.AbsolutePosition=userIP
Randomize
I=Fix(Rnd*1800)
rs.AbsolutePosition=I+1
%>
总第<%=CStr(I+6)%>题<%=rs("type")%>
<FORMAction=save.aspMethod=GETtarget="bottom">
<INPUTType=HiddenName=AIValue="<%=I%>">
<HR>
<%s=rs("na")
x=InStr(s,"A.")
sx="多选"
ifrs("dx")=0then
sx="单选"
endif%>
<%=Left(s,x-1)%>显现除选择部格外的试题内容
<fontcolor="red">
<%=sx%><BR>显现是单选仍是多选题
</font>
<%s=Right(s,Len(s)-x+1)
x=InStr(s,"B.")%>以下入手下手显现复选框及选择部分
<INPUTType=CheckBoxName=AValue="a">
<%=Left(s,x-1)%><BR>
<%s=Right(s,Len(s)-x+1)
x=InStr(s,"C.")%>
<INPUTType=CheckBoxName=AValue="b">
<%=Left(s,x-1)%><BR>
<%s=Right(s,Len(s)-x+1)
x=InStr(s,"D.")%>
<INPUTType=CheckBoxName=AValue="c">
<%=Left(s,x-1)%><BR>
<%s=Right(s,Len(s)-x+1)%>
<INPUTType=CheckBoxName=AValue="d"><%=s%>
<BR>
<INPUTType=SubmitValue="检察谜底">
<ahref="lkzk.asp"target="_self">持续做题</a><BR>
<%ifrsu2("nnn")+rsu2("yyy")=0thenrsu2("yyy")=1endif%>
准确率:<%=FormatNumber(rsu2("yyy")/(rsu2("nnn")+rsu2("yyy"))*100,2,True)%>%
总答题数:<%=rsu2("nnn")+rsu2("yyy")%>
</form>
</font>
</BODY>
-----------------Save.asp-------------------
<!--#includevirtual="/lkzk/DB0.fun"-->
<%
Setrsu2=GetMdbStaticRecordset("lkzk.mdb","IP")
Setrs=GetMdbStaticRecordset("lkzk.mdb","题库")
%>
<HTML>
<BODY>
<%I=CInt(Request("AI"))
rs.AbsolutePosition=I+1
ssx="错"
A=Replace(Request("A"),",","")
ifA=rs("xz")then判别答题正误
ssx="对"
endif
%>
<FONTColor=Red>
您答<%=ssx%>了显现谜底正误等信息
</FONT>
试题库总第<%=CStr(I+1+5)%>题您的谜底是:<%=A%>
参考谜底是:<%=rs("xz")%>
<%
ClientIP=Request.ServerVariables("REMOTE_ADDR")
userIP=Right(ClientIP,Len(ClientIP)-InStrRev(ClientIP,"."))
rsu2.AbsolutePosition=userIP
rsu2.Update
Ifssx="对"then
rsu2("yyy")=rsu2("yyy")+1
Endif
ifssx"对"then
rsu2("nnn")=rsu2("nnn")+1
Endif
rsu2.Update以下将正误了局纪录于数据库表“IP”中
%>
</BODY>
</HTML>
--------------Db0.fun----------------
<%以下为函数程序
---------------------------------------------------
FunctionGetMdbConnection(FileName)
DimProvider,DBPath
Provider="Provider=Microsoft.Jet.OLEDB.4.0;"
DBPath="DataSource="&Server.MapPath(FileName)
SetGetMdbConnection=GetConnection(Provider&DBPath)
EndFunction
---------------------------------------------------
FunctionGetMdbRecordset(FileName,Source)
SetGetMdbRecordset=GetMdbRs(FileName,Source,2,"")
EndFunction
---------------------------------------------------
FunctionGetMdbStaticRecordset(FileName,Source)
SetGetMdbStaticRecordset=GetMdbRs(FileName,Source,3,"")
EndFunction
---------------------------------------------------
FunctionGetConnection(Param)
Dimconn
OnErrorResumeNext
SetGetConnection=Nothing
Setconn=Server.CreateObject("ADODB.Connection")
IfErr.Number0ThenExitFunction
conn.OpenParam
IfErr.Number0ThenExitFunction
SetGetConnection=conn
EndFunction
---------------------------------------------------
FunctionGetMdbRs(FileName,Source,Cursor,Password)
Dimconn,rs
OnErrorResumeNext
SetGetMdbRs=Nothing
IfLen(Password)=0Then
Setconn=GetMdbConnection(FileName)
Else
Setconn=GetSecuredMdbConnection(FileName,Password)
EndIf
IfconnIsNothingThenExitFunction
Setrs=Server.CreateObject("ADODB.Recordset")
IfErr.Number0ThenExitFunction
rs.Opensource,conn,Cursor,2
IfErr.Number0ThenExitFunction
SetGetMdbRs=rs
EndFunction
---------------------------------------------------
%>
3、运转办法
本体系运转办法是先按文中所述格局制造好试题库文件Lkzk.mdb连同上列四个程序COPY至主机的WWW的根目次中并实行http://主机IP地点/Index.asp便可举行答题。(本程序在单机windows98+pws+ODBC驱动及局域网windowsNTServer4.0+IIS4.0+ODBC驱动情况下均测试经由过程,各用户能够依据详细情形对程序中的题目略加修正制造本人的试题库体系,还能够对其举行扩大增添各种别的功效,在这里因篇幅干系就不再敷述,有关ODBC驱动的具体情形可参阅相干材料或给我来信mailto:intcom@21cn.com。
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。 |
|