在 ASP 程序中,Response 和 Request 对象使用非常频繁,它们是 ASP 的基本对象。只有 掌握好这两个对象才能进行 ASP 的程序设计。本节以用户登录为例,加深对这两个对象的认 识,熟悉它们的使用方法。
4.4.1 创建登录页面
登录页面要求输入或选择用户名和密码。为了简便起见,定义了两类用户:普通用户和 超级用户。登录页面的文件名为Userlogin.asp,其代码如下:
<HTML>
<HEAD><TITLE>用户登录</TITLE></HEAD><CENTER>
<FORM action="UserLoginRespond.asp" method="POST">
<P><FONT size="3"><B>请选择用户名并输入密码</B></FONT></P>
<HR size="1" width='50%'>
<TABLE border=1>
<TR>
<TD>用户名:</TD>
<TD><SELECT name="UserName">
<option selected><%=Request.QueryString("UserName")%>
<option >普通用户
<option >超级用户
</TD>
</TR>
<TR>
<TD>密码:</TD>
<TD><INPUT type="PASSWORD" NAME="UserPassword" size="10" ></TD>
</TR>
<TR>
<TD colspan=2 align="center"><INPUT type="SUBMIT" value="登 录"></TD>
</TR>
</TABLE></FORM>
<FONT color="red"><%=Request("ErrorMessage")%></FONT>
</CENTER></HTML>
Userlogin.asp 页面的显示效果如图 419 所示。
图 419 登录页面
在Userlogin.asp文件中,使用表单中的下拉列表(UserName)传递用户名,使用类型为
“PASSWORD”的单行输入文本标记(UserPassword)传递用户输入的密码。当提交表单后,
用户选择的用户名和密码就会传递给UserLoginRespond.asp文件。
注意:在 Userlogin.asp 文件中有以下两个服务器端脚本:
<option selected><%=Request("UserName")%>
<FONT color="red"><%=Request("ErrorMessage")%></FONT>
它们的作用是当用户名和密码不正确时重新返回登录页面时显示的内容。
4.4.2 用户验证
在用户验证程序中,要取得登录页面中的用户类型和密码,并检查是否正确。如果正确,
将用户重定向到正确页面,如果没有通过验证,将用户重定向到登录页面,并给出提示信息。
用户验证的文件名为UserLoginRespond.asp,其代码如下:
<% Dim strNoName, strBadUserName, strBadPassword,flag '设置错误信息
strNoName = "请选择用户名并输入密码以登录网站"
strBadUserName = "对不起!输入的用户名错误"
strBadPassword = "对不起!输入的密码错误"
'取得网页表单的值
strUserName = Request.Form("Username") strUserPassword = Request.Form("Userpassword") '是否输入用户名和密码
If strUserName = "" or strUserPassword = "" Then
Response.Redirect "UserLogin.asp?ErrorMessage=" & strNoName & "&UserName=" & strUserName End If
'检查密码
If strUsername="普通用户" or strUsername="超级用户" Then '密码正确,找到用户
If strUsername="普通用户" and strUserPassword="001" Then '进入网站的网页
Session("UserLevel")=1 Response.Redirect "main.asp"
Else If strUsername="超级用户" and strUserPassword="002" Then Session("UserLevel") =2
Response.Redirect "main.asp"
Else '密码错误
Response.Redirect "UserLogin.asp?ErrorMessage=" & strBadPassword &_
"&UserName=" & strUserName End If
End if Else
'用户错误
Response.Redirect "UserLogin.asp?ErrorMessage=" & strBadPassword &_
"&UserName=" & strUserName strUserName
End If %>
在UserLoginRespond.asp文件中,使用Response.Redirect方法将用户重定向到不同的页面,
当验证正确时的代码如下:
Session("UserLevel") =2 Response.Redirect "main.asp"
这里使用Session变量是为了进入其后的页面时能够区分出不同的用户。关于Session的详 细内容,请参阅后面的章节。main.asp代码如下:
<% If Session("UserLevel")=1 or Session("UserLevel")=2 Then Response.Write "欢迎光临本网站!"
End If%>
当验证错误时,代码为:
Response.Redirect "UserLogin.asp?ErrorMessage="&strBadPassword&"UserName=" & strUserName 这段代码将用户重定向到登录页面的同时,向 Userlogin.asp 文件传递了两个 QueryString 参数:ErrorMessage 和 UserName,以使重新回到登录页面时能够显示一些信息。
用户输入不同情况的显示效果如图 420 所示。
图 420 不同登录情况的显示效果