ASP生成静态网页,学习CASE的用法,以及“权限”的一种控制方法

发表于:2007-06-30来源:作者:点击数: 标签:
form action=calscore.asp?action=do method=post name=form1 ... /form !--#include file=connect.asp-- % if session(logstatus)1 then % p align=center font size=5 b你还没有登录,没有权利浏览本页,请先a href=login.asp登录/a!/b/font/p % else @#读
<form action="calscore.asp?action=do" method="post" name=form1> ... </form>


<!--#include file="connect.asp"-->
<% if session("logstatus")<>1 then %>
<p align="center">
<font size="5" ><b>你还没有登录,没有权利浏览本页,请先<a href="login.asp">登录</a>!</b></font></p>
<%
else
@#读取login.htm附带的SubjectNo、StudentID及Name参数值
Subject=Request("Subject")
StudentID=Request("StudentID")
Name=Request("Name")

******** 路径和文件的建立 ********************************************************************
@#格式化日期
Function format(date)
format=datepart("yyyy",date)&"年"&datepart("m",date)&"月"&datepart("d",date)&"日&nbsp;"&formatdatetime(date,vbshorttime)
End Function
dim fmonth,fday,fhour,fminute,fsecond
fmonth=month(date)
if len(month(date))<2 then fmonth="0"&month(date) end if
fday=day(date)
if len(day(date))<2 then fday="0"&day(date) end if
fhour=hour(now())
if len(hour(now()))<2 then fhour="0"&hour(now()) end if
fminute=minute(now())
if len(minute(now()))<2 then fminute="0"&minute(now()) end if
fsecond=second(now())
if len(second(now()))<2 then fsecond="0"&second(now()) end if
newspath=year(date)&fmonth&fday
newsurl=fhour&fminute&fsecond
putdate=format(now())

if request("action")="do" then

path=server.MapPath("kaoshi") /.定义的一个文件
set fso=server.CreateObject("Scripting.FileSystemObject")
if fso.FolderExists(path)=false then
fso.CreateFolder(path)
end if
path=path&"/"&newspath
if fso.FolderExists(path)=false then
fso.CreateFolder(path)
end if
path=path&"/"&newsurl&".shtml" /.生成SHTML页面

set ts=fso.OpenTextFile(path,2,true,-2)

******** 生成HTML页面 ***********************************************************************
ts.writeline"<html>"
ts.writeline"<head>"
ts.writeline"<title>"&name&""
ts.writeline","&subject&""
ts.writeline" - 成绩结果</title>"
ts.writeline"<meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312"">"
ts.writeline"<link rel=""stylesheet"" href=""css.css"" type=""text/css"">"
ts.writeline"</head>"
ts.writeline""

ts.writeline"<body bgcolor=""#FFFFFF"" text=""#000000"">"
ts.writeline"<table width=""100%"">"
ts.writeline"<tr>"
ts.writeline"<td width=""100%"">"
ts.writeline"<h2>"
ts.writeline""&Name&""
ts.writeline",你的考试成绩如下表:</h2>"

dim score
score=0
sqlt="select * from 考题类型"
rst.open sqlt,conn,1,1
do while not rst.eof
tn=rst("id")
tname=rst("name")

ts.writeline"<b>"
ts.writeline""&tname&""
ts.writeline"</b><br><br>"

sql="Select * From "&Subject&" where 题目类型="&tn&" order by 题目序号"
rs.open sql,conn,2,2
while not rs.eof
answer=rs("正确答案")
select case rs("题目类型")
case 1:
selection=Request("No"&rs("题目序号"))
ts.writeline rs("题目序号")
ts.writeline"、"&selection&"<br>"
case 2:
selection=""
for n=1 to 4
if not Request("No"&rs("题目序号")&"-"&n)="" then
selection=selection&Request("No"&rs("题目序号")&"-"&n)
end if
next
ts.writeline rs("题目序号")
ts.writeline" 、"&selection&"<br>"
case 3:
selection=Request(rs("选择项1"))
ts.writeline rs("题目序号")
ts.writeline"、"&selection&"<br>"
case else:
selection=Request(rs("选择项1"))
ts.writeline rs("题目序号")
ts.writeline"、"
ts.writeline"<font color=red>未确定评分规则!</font><br>"
ts.writeline""&selection&"<br>"
end select
if answer=selection then
score=score+rs("本题分数")
end if
rs.movenext
wend

rs.close
ts.writeline"<br>"
rst.movenext
loop
@#response.write score
@#response.end

ts.writeline"<br>"
ts.writeline"<font color=red>评分:</font>"
ts.writeline""&score&""
ts.writeline"<br>"
ts.writeline"</td></tr></table>"
ts.writeline"</body>"
ts.writeline"</html>"
end if
%>


原文转自:http://www.ltesting.net