ASP讲座之二:读取通过表单发送的数据
2018-09-06 11:22
学习ASP,最重要的就是要掌握ASP内置的六大对象。事实上,在上一讲中,我们已经了解了Response对象(是吗?有没有搞错!),及Response对象中最常用的Write方法、Redirect方法和Expires属性。看到对象、方法、属性、集合、事件这些概念(俺一个都不识!),如果以前没接触过,聪明的您就不要管这些概念了,知道怎么用就行了,我的观点是刚开始关键在于临摹。下面我们继续通过实例学习Request对象,为了加深理解,务请运行这些程序看看输出结果。
一、 使用Request.ServerVariables获取环境变量,这部分内容很简单,但获取的内容却很重要,如何获取?请看下例:
<%@ Language=VBScript %>
<HTML><BODY>
<%wuf8.asp
Response.Write 运行ASP文件的路径: _
Request.ServerVariables(Script_Name) <Br>
Response.Write 返回content的数据长度: _
Request.ServerVariables(Content_Length) <Br>
Response.Write 返回客户的IP地址: _
Request.ServerVariables(Remote_Addr) <Br>
Response.Write 浏览器名: _
Request.ServerVariables(HTTP_USER_AGENT) <Br>
Response.Write 返回主页实际物理路径: _
Request.ServerVariables(APPL_PHYSICAL_PATH) <Br>
%>
<table colspan=8 cellpadding=5 border=0>
<tr>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>环境变量名</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>内容</font></td>
</tr>
<tr>
<td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
result1
</font></td>
<td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
result2
</font></td></tr>
</table>
</BODY></HTML>
Now,你应该发现上一讲中的例程wuf2.asp原来是多么的easy!
注意:该程序的后面一部分HTML标记纯是为下面的例子作准备的,所以不要觉得奇怪。那么,还有哪些环境变量呢?运行下面的例子就知道了(本程序删除了部分代码,最好去我站点下载源程序便于理解)。
<%@ Language=VBScript %>
<%‘wuf9.asp
Option Explicit
Dim Sv
%>
<HTML><BODY>
<table colspan=8 cellpadding=5 border=0>
<tr>
<td align=CENTER bgcolor=#800000 width=109> <font style=ARIAL NARROW color=#ffffff size=2>环境变量名</font></td>
<td align=CENTER width=459 bgcolor=#800000> <font style=ARIAL NARROW color=#ffffff size=2>结果</font></td>
</tr>
<%
for each Sv In Request.ServerVariables
Response.Write <tr>
Response.Write <td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
Response.Write Sv
Response.Write </font></td>
Response.Write <td bgcolor=f7efde align=CENTER> <font style=ARIAL NARROW size=2>
Response.Write Request.ServerVariables(Sv)
Response.Write </font></td></tr>
next
%>
</table>
</BODY></HTML>
这里使用了For…Each循环,用来列举一个集合中的所有元素。如果后半部分看不懂,请对照wuf8.asp,再瞧瞧运行结果,仔细体会一下(什么态度?)。
二、 通过表单向服务器传送数据(也可这样理解,服务器端如何读取客户端发送的数据)
做过主页,应该知道很多主页通常都使用Form表单让用户输入数据,然后通过“submit(提交)”按钮发送数据。From表单中的“method”有两种主要方法:POST和GET,而“action”后一般都是指定一个.cgi、.pl或.asp文件,今天我们要学习的就是如果编写这个.asp文件。
(一) 如果使用POST方法传送数据,则用Request.Form来读取数据。
先编辑如下一个wuf10.htm文件,供用户输入数据:
<html>
<body bgcolor=#FFFFFF>
<form method=post action=wuf11.asp>
姓名: <input type=text name=yourname><br>
性别: <select name=gender>
<option>男</option>
<option>女</option>
</select> <br>
留言: <textarea name=message>您好!
注意多行文本的处理</textarea><br>
爱好(按住Ctrl键可多选):
<select name=hobby multiple size=4>
<option>电脑</option>
<option>购物</option>
<option>电影</option>
<option>读书</option>
</select> <br>
<input type=submit name=Submit value=提交>
<input type=reset name=Submit2 value=Reset>
</form>
</body>
</html>
再编写一个wuf10.htm需用到的文件wuf11.asp收集数据:
<%@ Language=VBScript %>
<%wuf11.asp
Option Explicit
Response.Expires=0
Dim StrName, StrGender, StrM, StrMsg
StrName = Trim(Request.Form(yourname))Trim函数用来除首尾空格
StrGender = Trim(Request.Form(gender))
StrM = Trim(Request.Form(message))
StrMsg = Replace(StrM,vbcrlf,<Br> vbcrlf)
vbcrlf相当于回车符和换行符的组合。至于Replace函数,其作用就是将字符串StrM中的vbcrlf替换为<Br> vbcrlf(请思考这个vbcrlf有什么用?查看输出文件的HTML源码就明白了),详细请参考VBScript帮助。
%>
<HTML><BODY>
姓名: <%= StrName%><Br><Br>
性别: <%= StrGender%><Br><Br>
留言: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
实际上, 提交按钮的值也被传递: <Br>
<%= Request.Form(Submit)%><Br><Br>
<%先把上面看懂, 有兴趣再看看如何读取多个选项
Response.Write 共选择爱好项数nt <Br>
Dim I
For I = 1 to Request.Form(hobby).Count
Response.Write Request.Form(hobby)(I) <Br>
Next
%>
</BODY></HTML>
在这个的例子中,为了便于理解,我们使用了两个程序,实际上只使用一个程序也可以,如果有兴趣请看下面的例程wuf12.asp,有助于加深对环境变量的理解。
<%@ Language=VBScript %>
<%wuf12.asp
Option Explicit
Response.Expires=0
Dim StrName, StrGender, StrM, StrMsg
If Request.ServerVariables(Content_Length) <> 0 Then
提交数据后,这个长度就不会是 0, 因此执行下面的语句, 将结果显示出来
下面一部分实际上是照搬 wuf11.asp
StrName = Trim(Request.Form(yourname))
StrGender = Trim(Request.Form(gender))
StrM = Trim(Request.Form(message))
StrMsg = Replace(StrM,vbcrlf,<Br> vbcrlf)
%>
<HTML><BODY>
姓名: <%= StrName%><Br><Br>
性别: <%= StrGender%><Br><Br>
留言: <Br><Br>
&
上一篇:轻松打造ASP计数器