分享
 
 
 

ASP讲座之二:读取通过表单发送的数据

王朝asp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

学习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 "共选择爱好项数:" & Request.Form("hobby").Count & "<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>

<%= StrM%><Br><Br>

<%= StrMsg%><Br><Br>

<%

Response.Write "共选择爱好项数:" & Request.Form("hobby").Count & "<Br>"

Dim I

For I = 1 to Request.Form("hobby").Count

Response.Write Request.Form("hobby")(I) & "<Br>"

Next

%>

</BODY></HTML>

<%

Else

'当第一次加载页面时,没有提交任何数据,故前面一部分并不执行,而是从这里开始

'这也就是为什么会有两对 <HTML></HTML> 的原因

'下面照搬 wuf10.htm 就行了

'<form method="post" action="wuf11.asp"> 给用环境变量替换掉了, 其实完全一样

Response.Write "看看结果: " & Request.ServerVariables("Script_name") & "<Br>"

%>

<HTML><BODY>

<form method="post" action="<%= Request.ServerVariables("Script_name")%>">

姓名: <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>

<%End If%>

(二)如果使用GET方法传送数据,则用Request.Querystring来读取数据。

先编辑如下一个wuf13.htm文件,供用户输入数据:

<html>

<body bgcolor="#FFFFFF">

<form method="get" action="wuf14.asp">

英文姓名: <input type="text" name="Ename"> <br>

中文姓名: <input type="text" name="Cname"><br>

性别: <select name="gender">

<option>男</option>

<option>女</option>

</select> <br>

<input type="submit" name="Submit" value="提交">

<input type="reset" name="Submit2" value="Reset">

</form>

</body>

</html>

再编写一个wuf13.htm需用到的文件wuf14.asp收集数据:

<%@ Language=VBScript %>

<% 'wuf14.asp

Option Explicit

Response.Expires=0

Dim StrCname, StrEname, StrGender

StrEname = Trim(Request.QueryString("Ename")) 'Trim函数用来除首尾空格

StrCname = Trim(Request.QueryString("Cname"))

StrGender = Trim(Request.QueryString("gender"))

%>

<HTML><BODY>

英文姓名: <%= StrEname%><Br><Br>

中文姓名: <%= StrCname%><

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有