• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp 读取通过表单发送的post数据
    学习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%>Br>Br>
    性别: %= StrGender%>Br>Br>
    看看提交的字符串: Br>
    %= Request.ServerVariables("Query_String")%>
    /BODY>/HTML>

    为了更好地理解这个程序,你最好先在浏览器中试试例程wuf13.htm的效果,看看输出的结果,你会发现地址栏中长长的字符串似曾相识,如同在Yahoo搜索时看到的差不多。这时,你试着在地址栏中直接输入“http://localhost/wuf14.asp?Ename=RoseCname=李二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网站有一篇类似文章)。
    上一篇:ASP脚本的执行顺序详细说明
    下一篇:asp 中文乱码问题解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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