加入收藏 | 设为首页 | 会员中心 | 我要投稿 航空爱好网 (https://www.ikongjun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

asp 读取通过表单发送的post数据

发布时间:2022-10-08 15:37:21 所属栏目:Asp教程 来源:
导读:  当表单发送的数据量较大时,数据会被分成比提交表单前的限制小的多个副本,这些副本将分别放置在几个隐藏字段中,接下来爱站技术频道小编为大家分享asp 读取通过表单发送的post数据,不妨过来学习一下。

  
  当表单发送的数据量较大时,数据会被分成比提交表单前的限制小的多个副本,这些副本将分别放置在几个隐藏字段中,接下来爱站技术频道小编为大家分享asp 读取通过表单发送的post数据,不妨过来学习一下。
 
  一、 使用Request.ServerVariables获取环境变量,这部分内容很简单,但获取的内容却很重要,如何获取?请看下例:
 
  复制代码 代码如下:
 
  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标记纯是为下面的例子作准备的,所以不要觉得奇怪。那么,还有哪些环境变量呢?运行下面的例子就知道了(本程序删除了部分代码,最好去我站点下载源程序便于理解)。
 
  复制代码 代码如下:
 
  Option Explicit
 
  Dim Sv
 
  %>
 
  环境变量名
 
  结果
 
  for each Sv In Request.ServerVariables
 
  Response.Write ""
 
  Response.Write "
 
  "
 
  Response.Write Sv
 
  Response.Write "
 
  "
 
  Response.Write "
 
  "
 
  Response.Write Request.ServerVariables(Sv)
 
  Response.Write "
 
  "
 
  next
 
  %>
 
  这里使用了For…Each循环,用来列举一个集合中的所有元素。如果后半部分看不懂,请对照wuf8.asp,再瞧瞧运行结果,仔细体会一下(什么态度?)。
 
  二、 通过表单向服务器传送数据(也可这样理解,服务器端如何读取客户端发送的数据)
 
  做过主页,应该知道很多主页通常都使用Form表单让用户输入数据,然后通过“submit(提交)”按钮发送数据。From表单中的“method”有两种主要方法:POST和GET,而“action”后一般都是指定一个.cgi、.pl或.asp文件,今天我们要学习的就是如果编写这个.asp文件。
 
  (一) 如果使用POST方法传送数据,则用Request.Form来读取数据。
 
  先编辑如下一个wuf10.htm文件,供用户输入数据:
 
  复制代码 代码如下:
 
  再编写一个wuf10.htm需用到的文件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帮助。
 
  %>
 
  姓名:
 
  性别:
 
  留言:
 
  实际上, "提交"按钮的值也被传递:
 
  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,有助于加深对环境变量的理解。
 
  复制代码 代码如下:
 
  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)
 
  %>
 
  姓名:
 
  性别:
 
  留言:
 
  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 就行了
 
  '
 
  (二)如果使用GET方法传送数据,则用Request.Querystring来读取数据。
 
  先编辑如下一个wuf13.htm文件,供用户输入数据:
 
  再编写一个wuf13.htm需用到的文件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"))
 
  %>
 
  英文姓名:
 
  中文姓名:
 
  性别:
 
  看看提交的字符串:
 
  为了更好地理解这个程序,你最好先在浏览器中试试例程wuf13.htm的效果,看看输出的结果,你会发现地址栏中长长的字符串似曾相识,如同在Yahoo搜索时看到的差不多。这时,你试着在地址栏中直接输入“李二&gender=女”,居然也得到了同样的结果。所以你可以这样看,wuf13.htm的结果就是得到了类似这样的一个带参数的链接。而Request.QueryString则是从 地址的附加参数中读取各个数据。
 
  实际上,当按“提交”按钮后ASP表单,查询字符串(输入的数据)会以参数的形式附加到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网站有一篇类似文章)。
 
  以上是爱站技术频道小编介绍的asp 读取通过表单发送的post数据,大家已经了解了,在学习编程的时候,要坚持理论和实践相结合的方式,这样的学习效果是非常好的。
 

(编辑:航空爱好网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章