您的位置:首页精文荟萃软件资讯 → ASP讲座之二:读取通过表单发送的数据

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

时间:2004/10/7 19:17:00来源:本站整理作者:蓝点我要评论(0)

学习ASP,最重要的就是要掌握ASP内置的六大对象。事实上,在上一讲中,我们已经了解了Response对象(是吗?有没有搞错!),及Response对象中最常用的Write方法、Redirect方法和Expires属性。看到对象、方法、属性、集合、事件这些概念(俺一个都不识!),如果以前没接触过,聪明的您就不要管这些概念了,知道怎么用就行了,我的观点是刚开始关键在于临摹。下面我们继续通过实例学习Request对象,为了加深理解,务请运行这些程序看看输出结果。



一、  使用Request.ServerVariables获取环境变量,这部分内容很简单,但获取的内容却很重要,如何获取?请看下例:

<%@ Language=VBScript %>



<%  'wuf8.asp

Response.Write "运行ASP文件的路径: " &_

                Request.ServerVariables("Script_Name") & "
"

Response.Write "返回content的数据长度: " &_

                Request.ServerVariables("Content_Length") & "
"

Response.Write "返回客户的IP地址: " &_

                Request.ServerVariables("Remote_Addr") & "
"

Response.Write "浏览器名: " &_

                Request.ServerVariables("HTTP_USER_AGENT") & "
"

Response.Write "返回主页实际物理路径: " &_

                Request.ServerVariables("APPL_PHYSICAL_PATH") & "
"

%>





  

    

    

  

  

    

    

环境变量名 内容


      result1

       


      result2

       




    Now,你应该发现上一讲中的例程wuf2.asp原来是多么的easy!

    注意:该程序的后面一部分HTML标记纯是为下面的例子作准备的,所以不要觉得奇怪。那么,还有哪些环境变量呢?运行下面的例子就知道了(本程序删除了部分代码,最好去我站点下载源程序便于理解)。

<%@ Language=VBScript %>

<%   ‘wuf9.asp

Option Explicit

Dim Sv

%>





  

    

    

  

<%

for each Sv In Request.ServerVariables

  Response.Write ""

  Response.Write ""

  Response.Write ""

next

%>

环境变量名 结果
"

  Response.Write Sv

  Response.Write "
"

  Response.Write Request.ServerVariables(Sv)

  Response.Write "




这里使用了For…Each循环,用来列举一个集合中的所有元素。如果后半部分看不懂,请对照wuf8.asp,再瞧瞧运行结果,仔细体会一下(什么态度?)。



二、  通过表单向服务器传送数据(也可这样理解,服务器端如何读取客户端发送的数据)

做过主页,应该知道很多主页通常都使用Form表单让用户输入数据,然后通过“submit(提交)”按钮发送数据。From表单中的“method”有两种主要方法:POST和GET,而“action”后一般都是指定一个.cgi、.pl或.asp文件,今天我们要学习的就是如果编写这个.asp文件。

(一)  如果使用POST方法传送数据,则用Request.Form来读取数据。

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







  姓名:


  性别:


  留言:   


  爱好(按住Ctrl键可多选):

  


  

  







再编写一个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,"
" & vbcrlf)

' vbcrlf相当于回车符和换行符的组合。至于Replace函数,其作用就是将字符串StrM中的vbcrlf替换为"
" & vbcrlf(请思考这个vbcrlf有什么用?查看输出文件的HTML源码就明白了),详细请参考VBScript帮助。

%>



姓名: <%= StrName%>



性别: <%= StrGender%>



留言:



<%= StrM%>



<%= StrMsg%>



实际上, "提交"按钮的值也被传递:


<%= Request.Form("Submit")%>





<%  '先把上面看懂, 有兴趣再看看如何读取多个选项

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

Dim I

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

  Response.Write Request.Form("hobby")(I) & "
"

Next

%>



在这个的例子中,为了便于理解,我们使用了两个程序,实际上只使用一个程序也可以,如果有兴趣请看下面的例程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,"
" & vbcrlf)

%>



姓名: <%= StrName%>



性别: <%= StrGender%>



留言:



<%= StrM%>



<%= StrMsg%>





<%

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

Dim I

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

  Response.Write Request.Form("hobby")(I) & "
"

Next

%>





<%

Else

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

'这也就是为什么会有两对 的原因

'下面照搬 wuf10.htm 就行了

'
给用环境变量替换掉了, 其实完全一样

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

%>



">

  姓名:


  性别:


  留言:   


  爱好(按住Ctrl键可多选):

  


  

  





<%End If%>



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

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







  英文姓名:


  中文姓名:


  性别:   


  

  







再编写一个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"))

%>



英文姓名: <%= StrEname%>



中文姓名: <%= StrCname%>



性别: <%= StrGender%>



看看提交的字符串:


<%= Request.ServerVariables("Query_String")%>



为了更好地理解这个程序,你最好先在浏览器中试试例程wuf13.htm的效果,看看输出的结果,你会发现地址栏中长长的字符串似曾相识,如同在Yahoo搜索时看到的差不多。这时,你试着在地址栏中直接输入“http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女”,居然也得到了同样的结果。所以你可以这样看,wuf13.htm的结果就是得到了类似这样的一个带参数的链接。而Request.QueryString则是从http:// 地址的附加参数中读取各个数据。

实际上,当按“提交”按钮后,查询字符串(输入的数据)会以参数的形式附加到URL地址后(各参数间以“&”分隔),达到传递数据的目的。同时,注意浏览器中显示的查询字符串中没有中文,而是不认识的含百分号的乱码,这是因为进行了编码的缘故。最后,与前面一样,这两个程序也可合并为一个程序(例程wuf15.asp,需去我站点下载)。



几点说明:

1.  若使用POST方法提交数据,则Request.ServerVariables("Content_Length")>0。

   若使用GET方法提交数据,则Request.ServerVariables("Query_String") <> ""。

2.  弄懂原理后,你完全可以在同一个ASP文件中混合使用Request.Form和Request.QueryString。

3.  如果在一个Form表单中,有几个按钮,你如何确定用户按了哪个按钮?如果留意的话,会发现例程wuf11.asp中有一句,“提交”按钮的值也被传送,而wuf13.htm中生成的查询字符串最后也可以找到类似的值。请注意:只有被按按钮的值被传送,而其他按钮的值为””,这就是判断依据(《中计报》InfoWeb网站有一篇类似文章)。


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本