1.88k likes | 2.16k Views
第10章 ASP 应用程序. 10.1 在不同时段显示不同的页面内容 10.2 搜索引擎的使用 10.3 进行注册登记 10.4 将数据库的内容分页显示 10.5 选择数据库表中的数据 10.6 欢乐聊天室. 10.7 一个简单的留言簿 10.8 题库的输入、搜索和修改程序 10.9 进行投票统计的程序 习题. 10.1 在不同时段显示不同的页面内容. [例10-1]建立一个自动监测浏览时间、并根据不同时段动态显示不同页面内容的 ASP 程序。该程序的文件名为10|1. asp。
E N D
第10章 ASP应用程序 10.1 在不同时段显示不同的页面内容 10.2 搜索引擎的使用 10.3 进行注册登记 10.4 将数据库的内容分页显示 10.5 选择数据库表中的数据 10.6 欢乐聊天室
10.7一个简单的留言簿 10.8题库的输入、搜索和修改程序 10.9进行投票统计的程序 习题
10.1 在不同时段显示不同的页面内容 [例10-1]建立一个自动监测浏览时间、并根据不同时段动态显示不同页面内容的 ASP 程序。该程序的文件名为10\|1.asp。 <%@ Language=″VBScript″ %> <html> <body bgColor=Plum> <font color=″Green″> <% if time <#12:00:00# and Time>= #06:00:00# then %> 早上好,很高兴见到你!
<img src=″花2.gif ″ width=″120″ height=″90″> <% elseif Time < #15:00:00# and Time >= #12:00:00# then %> 中午好,很高兴见到你! <img src=″人.gif ″ width=″120″ height=″89″> <% elseif Time < #19:00:00# and Time >= #15:00:00# then %> 下午好,很高兴见到你! <img src=″动物.gif ″ width=″120″ height=″90″> <% elseif Time < #23:00:00# and Time >= #19:00:00# then %> 晚上好,很高兴见到你! <img src=″4.gif ″ width=″120″ height=″90″>
<% else %> 太晚了,你该休息啦! <img src=″2.gif ″ width=″123″ height=″86″> <% end if %> </body> </html> • 10.1.asp执行的结果如图10.1所示。
10.2 搜索引擎的使用 [例10-2]建立一个利用其他搜索引擎进行搜索的ASP程序。该程序的文件名为10\|2.asp。 <%@ Language=VBScript %> <% dim strKey if Request.Form(″CmdSearch″) = ″开始搜索″ then strKey = Request.Form(″TxtKey″) if strKey <> ″″ then
select case Request.Form(″CboEngine″) case ″163″ Response.Redirect ″http://search.163.com/cgibin/search/engine/search.fcgi?key=″ & strKey case ″yahoo″ Response.Redirect ″http://search.chinese.yahoo.com/search/gb?p=″ & strKey & ″&u=B″ case ″sohu″ Response.Redirect http://search.sohu.com/cgibin/searchbaidu.p?tn=sohu&si=gi&work=″ & strKey & ″&ct=0&cl=2&lm=0″
case ″sina″ Response.Redirect ″http://search.sina.com.cn/cgibin/search/search.cgi?searchkey=″ & strKey case ″263″ Response.Redirect ″http://search.263.net/cgibin/tsearch?func=3&p=″ & strKey case ″cseek″ Response.Redirect ″http://www.cseek.com/cgi/srchengine.cgi?searchkey=″ & strKey case ″gdcatv″
Response.Redirect ″http://www.gdcatv.com.cn:4000/intra/owa/navigator.naviquery?pagenumber=1&button=a&text1=″ & strKey case ″EXCITE″ Response.Redirect ″http://www.excite.com/search.gw?look=default&c=web&trace=b&search=″ & strKey end select else Response.Write ″请先输入要搜索的关键字″ end if end if %>
<html> <head> <meta name=″generator″ content=″Microsoft Visual Studio 6.0″> <title>Internet 信息检索</title> </head> <body bgcolor=linen> <p align=center><font face=宋体 size=5><strong>搜索引擎 </strong></font></p> <form action=SearchEngine.asp method=post name=FormSearch> <p align=center>要搜索的关键字
<input id=TxtKey name=TxtKey style=″HEIGHT: 22px; WIDTH: 167px″> </p> <p align=center>请选择搜索引擎 <select id=CboEngine name=CboEngine style=″HEIGHT: 22px; WIDTH: 167px″> <option value=″Title″ selected>=== 选择搜索引擎 ===</option> <option value=″163″>网易163搜索</option> <option value=″yahoo″>中文雅虎搜索</option> <option value=″sohu″>搜狐搜索</option> <option value=″sina″>新浪搜索</option> <option value=″263″>首都在线263搜索</option>
<option value=″cseek″>搜索客</option> <option value=″gdcatv″>视讯中文搜索</option> <option value=″excite″>EXCITE</option> </select> </p> <p align=center><font face=宋体><input name=CmdSearch type=submit value=″ 开始搜索″></p></font> </form> </body> </html> • 10.2.asp执行的结果如图10.2所示。
这个程序可以使用户在页面上输入搜索的关键字,如“电脑硬件”,然后在“选择搜索引擎”下拉菜单中选择一个搜索引擎,最后单击“开始搜索”按钮,将上网进行搜索,如图10.3所示是选择“新浪搜索”搜索到的“电脑硬件”信息的页面。这个程序可以使用户在页面上输入搜索的关键字,如“电脑硬件”,然后在“选择搜索引擎”下拉菜单中选择一个搜索引擎,最后单击“开始搜索”按钮,将上网进行搜索,如图10.3所示是选择“新浪搜索”搜索到的“电脑硬件”信息的页面。 • 这个程序分为两大部分,上面是ASP的语句,主要是建立与搜索引擎的链接以及搜索的方式,下面是HTML语句,主要是建立进行搜索的页面。
10.3 进行注册登记 • 为了编写程序的方便,以下的例子中使用英文名字作为程序的名字。进行注册登记的应用程序由五个文件组成: LogRegist.asp新用户注册文件 、LogCheck.asp用户登录文件、SysMain.asp进入站点的主页面文件、数据库表文件Tbl StudentInfo和包含文件ADOVBS.INC。 • [例10-3]这是一个包含文件,文件名为ADOVBS.INC,主要定义了应用程序中使用的变量,当哪个页面需要使用变量时即可插入该文件,这个文件就包含了很多变量的定义语句,其中大部分变量与这里的应用程序无关。这里只是为了说明包含文件的具体使用方法,可以不使用包含文件而直接在应用程序中定义变量。
<% Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 ′——CursorOptionEnum Values Const adHoldRecords = &H00000100 Const adMovePrevious = &H00000200 Const adAddNew = &H01000400 Const adDelete = &H01000800 Const adUpdate = &H01008000 Const adBookmark = &H00002000 Const adApproxPosition = &H00004000
Const adUpdateBatch = &H00010000 Const adResync = &H00020000 Const adNotify = &H00040000 ′——LockTypeEnum Values Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 ′——ExecuteOptionEnum Values Const adRunAsync = &H00000010 ′——ObjectStateEnum Values Const adStateClosed = &H00000000
Const adStateOpen = &H00000001 Const adStateConnecting = &H00000002 Const adStateExecuting = &H00000004 ′——CursorLocationEnum Values Const adUseServer = 2 Const adUseClient = 3 ′——DataTypeEnum Values Const adEmpty = 0 Const adTinyInt = 16 Const adSmallInt = 2 Const adInteger = 3 Const adBigInt = 20
Const adUnsignedTinyInt = 17 Const adUnsignedSmallInt = 18 Const adUnsignedInt = 19 Const adUnsignedBigInt = 21 Const adSingle = 4 Const adDouble = 5 Const adCurrency = 6 Const adDecimal = 14 Const adNumeric = 131 Const adBoolean = 11 Const adError = 10 Const adUserDefined = 132 Const adVariant = 12
Const adIDispatch = 9 Const adIUnknown = 13 Const adGUID = 72 Const adDate = 7 Const adDBDate = 133 Const adDBTime = 134 Const adDBTimeStamp = 135 Const adBSTR = 8 Const adChar = 129 Const adVarChar = 200 Const adLongVarChar = 201 Const adWChar = 130
Const adVarWChar = 202 Const adLongVarWChar = 203 Const adBinary = 128 Const adVarBinary = 204 Const adLongVarBinary = 205 ′——EditModeEnum Values Const adEditNone = &H0000 Const adEditInProgress = &H0001 Const adEditAdd = &H0002 Const adEditDelete = &H0004 ′——SearchDirection Values Const adSearchForward = 1
Const adSearchBackward = 1 ′——ConnectPromptEnum Values Const adPromptAlways = 1 Const adPromptComplete = 2 Const adPromptCompleteRequired = 3 Const adPromptNever = 4 %> [例10-4]新用户进行注册程序,文件名为LogRegist.asp。 <%@ Language=VBScript %> <!-- #INCLUDE FILE=″ADOVBS.INC ″ -- > <%
dim lStrSQL, lRecItem, lStrDbConnStr dim lErrNo, lErrMes dim lStrCode, lIsMod, lStudentId dim lStudent(6, 0) dim iii lStrDbConnStr = ″DSN=log″ set lRecItem = Server.CreateObject(″ADODB.RecordSet″) lErrNo = 0 if Request.Form(″CmdClose″) = ″返回″ then Response.Redirect ″LogCheck.asp″ end if
select case Request.Form(″CmdReg″) case ″退出″ Response.Redirect ″LogCheck.asp″ case ″确认″ if Request.Form(″txtStId″)=″ ″ - Or Request.Form(″txtStname″)=″ ″ - Or Request.Form(″txtStPws″)=″ ″ - Or Request.Form(″txtStPws2″)=″ ″ then lErrNo = 14 else if Request.Form(″txtStPws″) <> Request.Form(″txtStPws2″) then lErrNo = 15
end if end if lStudent(0,0) = Request.Form(″TxtStId″) lStudent(1,0) = UCase(Request.Form(″TxtStname″)) lStudent(2,0) = Request.Form(″TxtStCI″) lStudent(5,0) = Request.Form(″TxtStPws″) lStudent(3,0) = Request.Form(″TxtStUnit″) lStudent(4,0) = Request.Form(″TxtStContact″) lStudent(6,0) = Request.Form(″TxtStPhone″) lIsMod = Request.Form(″TxtMod″) if lErrNo = 0 then lErrNo = 20
lStrSQL = ″Select * From TblStudentInfo″ & ″ Where StudentId=′″ & lStudent(0,0) & ″′;″ lRecItem.Open lStrSQL, lStrDbConnStr,adOpenDynamic,adLockOptimistic if lRecItem.EOF Or lRecItem.BOF then lRecItem.AddNew else if lIsMod = ″False″ then lErrNo = 13 ′记录已经存在 end if end if
if LErrNo = 20 then lRecItem.Fields(″StudentId″) = lStudent(0,0) lRecItem.Fields(″Studentname″) = lStudent(1,0) lRecItem.Fields(″StudentCI″) = lStudent(2,0) lRecItem.Fields(″StudentPwd″) = lStudent(5,0) lRecItem.Fields(″StudentUnit″) = lStudent(3,0) lRecItem.Fields(″Contact″) = lStudent(4,0) lRecItem.Fields(″Telephone″) = lStudent(6,0) lRecItem.Update end if lRecItem.Close end if
case else lStudentId = ″ ″ lIsMod = ″True″ end select set lRecItem = Nothing select case lErrNo case 20 lErrMes = ″您已经成功注册!″ case 13 lErrMes = ″该考号已经存在,请与系统管理员联系!″ case 14
lErrMes = ″账号、用户姓名及两次口令输入中不能有空值″ case 15 lErrMes = ″两次输入的口令不同″ case else ErrMes = ″ ″ end select %> <html> <head> <meta name=VI60defaultClientScript content=VBScript>
<meta name=″generator″ Content=″Microsoft Visual Studio 6.0 ″> <title>新用户注册</title> </head> <body bgColor=silver> <p align=center> <font color=navy face=宋体 size=4><%=lErrMes%></font></p> <% if lErrNo <> 20 then %> <p align=center><strong></strong></p> <p align=center> <font color=#000080 face=宋体 size=6> <strong>新用户注册</strong></font></p>
<table align=center border=1 cellPadding=1 cellSpacing=1> <form action=″LogRegist.asp″ id=FormReg method=post name=FormReg> <tr> <td>账号</td> <td> <input id=TxtStID name=TxtStID maxlength=15 value=″<%=lStudent(0,0)%>″> </td></tr> <tr> <td>姓名</td> <td>
<td> <input id=TxtStname name=TxtStname maxlength=20 value=″<%=lStudent(1,0)%>″> </td></tr> <tr> <td>身份证号</td> <td> <input id=TxtStCI name=TxtStCI maxlength=15 value=″<%=lStudent(2,0)%>″> </td></tr> <tr> <td>单位</td> <td><input id=TxtStCI name=TxtStUnit value=″<%=lStudent(3,0)%>″>
</td></tr> <tr> <td>联系方式</td> <td><input id=TxtStContact name=TxtStContact value=″<%=lStudent(4,0)%>″> </td></tr> <tr> <td>电话</td> <td> <input id=TxtStPhone name=TxtStPhone value=″<%=lStudent(6,0)%>″> </td></tr> <tr>
<td>口令</td> <td><input id=TxtStPws name=TxtStPws type=password maxlength=10> </td></tr> <tr> <td>口令确认</td> <td> <input id=TxtStPws2 name=TxtStPws2 type=password maxlength=10> </td></tr> <tr> <td align=middle colSpan=2> <font face=宋体 size=3>
<input accessKey=″<Enter>″ id=CmdOk name=CmdReg style=″height: 24px; width: 70px″ type=submit value=″确认″ width=″70″> <input id=CmdExit name=CmdReg style=″height: 24px; width: 70px″ type=submit value=″退出″ width=″70″> </font></td></tr> </table> <input id=TxtMod name=TxtMod style=″height: 22px; visibility: hidden; width: 50px″
value=″<%=lIsMod%>″> </form> <%else %> <form action=″LogRegist.asp″ method=POST id=FormClose name=FormClose> <p align=center> <input type=″submit″ value=″返回″ id=CmdClose name=CmdClose> </p> </form> <%end if %> </body> </html>
在浏览器地址栏中输入“http://zhc/slp/LogRegist.asp”,按回车键后,可看到如图10.4所示页面,在这里填写你的“账号”、“姓名”、“口令”,并且要在“口令确认”栏再次填写你的口令,最后单击“确认”按钮,如果你填写的内容满足以上要求,可看到成功注册的页面,如图10.5所示,否则会让你重新填写,并会提示你应该在什么地方填写,如图10.6所示。在浏览器地址栏中输入“http://zhc/slp/LogRegist.asp”,按回车键后,可看到如图10.4所示页面,在这里填写你的“账号”、“姓名”、“口令”,并且要在“口令确认”栏再次填写你的口令,最后单击“确认”按钮,如果你填写的内容满足以上要求,可看到成功注册的页面,如图10.5所示,否则会让你重新填写,并会提示你应该在什么地方填写,如图10.6所示。
[例10-5]这是用户进行登录的程序,文件名为LogCheck.asp。[例10-5]这是用户进行登录的程序,文件名为LogCheck.asp。 <%@ Language=VBScript %> <!-- #include file=″adovbs.inc″ -- > <% dim lStrSQL, lRecItem, lStrDbConnStr dim lUserId, lUserPws, lCmdFun dim lErrNo, lErrMes lCmdFun = Request.Form(″CmdFun″) lErrNo = 0 select case lCmdFun
case ″ 登录 ″ lUserId = UCase(Request.Form(″TxtUserID″)) lUserPwd = Request.Form(″TxtUserPwd″) lStrDbConnStr = ″DSN=log″ Set lRecItem = Server.CreateObject(″ADODB.RecordSet″) lStrSQL = ″select * from TblStudentInfo where (StudentID=′″ & lUserId & ″′)″ lRecItem.Open LStrSQL, LStrDbConnStr, adOpenStatic if lRecItem.BOF or lRecItem.EOF then
lErrNo = 1 ′′没有该用户,请与系统管理员联系注册 elseif lRecItem.Fields(″StudentPwd″) = lUserPwd then Session(″StudentID″) = lUserId Session(″Studentname″) = lRecItem.Fields(″Studentname″) else lErrNo = 2 ′′用户口令输入错误 end if lRecItem.Close set lRecItem = Nothing
if lErrNo = 0 then Response.Redirect ″SysMain.asp″ end if case ″新用户注册″ Response.Redirect ″LogRegist.asp″ end select select case lErrNo case 1 lErrMes = ″没有该用户,请先注册″ case 2
lErrMes = ″用户口令输入错误″ end select Response.Write ″<center><big>″ & lErrMes & ″</big></center>″ %> <html> <head> <meta name=″generator″ Content=″Microsoft Visual Studio 6.0″> <title>用户登录</title> </head> <body bgColor=silver>
<form action=″LogCheck.asp″ method=POST id=FormLog name=FormLog> <p style=″fontFAMILY: 宋体″> <table align=center border=1 cellPadding=1 cellSpacing=1> <tr> <td align=middle> <p> </p> <p>用户账号<input id=TxtUserID name=TxtUserID></p> <p>用户口令 <input id=TxtUserPwd name=TxtUserPwd type=password></p> <p> </p></td></tr>
<tr> <td align=middle> <input id=CmdLogin name=CmdFun type=submit value=″ 登录 ″> <input id=CmdRegist name=CmdFun type=submit value=″新用户注册″></td> </tr></table></p> </form> </body> </html>
当新用户注册成功后单击“返回”按钮可进入“用户登录”页面,如图10.7所示。一般情况下用户也是首先到这个页面,如果是第一次来这个站点要先进行注册,如果是注册过的老用户,可直接输入“账号”、“用户口令”,然后单击“登录”按钮,即可看到站点的主页了,如图10.8所示。当新用户注册成功后单击“返回”按钮可进入“用户登录”页面,如图10.7所示。一般情况下用户也是首先到这个页面,如果是第一次来这个站点要先进行注册,如果是注册过的老用户,可直接输入“账号”、“用户口令”,然后单击“登录”按钮,即可看到站点的主页了,如图10.8所示。