熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP講座之二:讀取通過表單發送的數據

2013-11-13 09:58:27  來源: .NET編程 

  學習ASP最重要的就是要掌握ASP內置的六大對象下面我們繼續通過實例學習Request對象為了加深理解務請運行這些程序看看輸出結果
  
   使用RequestServerVariables獲取環境變量
  
  這部分內容很簡單但獲取的內容卻很重要如何獲取?請看下例
  <%@ Language=VBScript %>
  <HTML><BODY>
  <% wufasp
  ResponseWrite 運行ASP文件的路徑: &_
  RequestServerVariables(Script_Name) & <Br>
  ResponseWrite 返回content的數據長度: &_
  RequestServerVariables(Content_Length) & <Br>
  ResponseWrite 返回客戶的IP地址: &_
  RequestServerVariables(Remote_Addr) & <Br>
  ResponseWrite 浏覽器名: &_
  RequestServerVariables(HTTP_USER_AGENT) & <Br>
  ResponseWrite 返回主頁實際物理路徑: &_
  RequestServerVariables(APPL_PHYSICAL_PATH) & <Br>
  %>
  
  <table colspan= cellpadding= border=>
  <tr>
  <td align=CENTER bgcolor=# width=> <font color=#ffffff size=>環境變量名</font></td>
  <td align=CENTER width= bgcolor=#> <font color=#ffffff size=>內容</font></td>
  </tr>
  <tr>
  <td bgcolor=fefde align=CENTER> <font size=>
  result
  </font></td>
  <td bgcolor=fefde align=CENTER> <font size=>
  result
  </font></td></tr>
  </table>
  </BODY></HTML>
  Now你應該發現上一講中的例程wufasp原來是多麼的easy!
  注意該程序的後面一部分HTML標記純是為下面的例子作准備的所以不要覺得奇怪那麼還有哪些環境變量呢?運行下面的例子就知道了(本程序刪除了部分代碼最好去我站點下載源程序便於理解)
  <%@ Language=VBScript %>
  <%  wufasp
  Option Explicit
  Dim Sv
  %>
  <HTML><BODY>
  <table colspan= cellpadding= border=>
  <tr>
  <td align=CENTER bgcolor=# width=> <font color=#ffffff size=>環境變量名</font></td>
  <td align=CENTER width= bgcolor=#> <font color=#ffffff size=>結果</font></td>
  </tr>
  <%
  for each Sv In RequestServerVariables
  ResponseWrite <tr>
  ResponseWrite <td bgcolor=fefde align=CENTER> <font style=ARIAL NARROW size=>
  ResponseWrite Sv
  ResponseWrite </font></td>
  ResponseWrite <td bgcolor=fefde align=CENTER> <font style=ARIAL NARROW size=>
  ResponseWrite RequestServerVariables(Sv)
  ResponseWrite </font></td></tr>
  next
  %>
  </table>
  </BODY></HTML>
  這裡使用了For…Each循環用來列舉一個集合中的所有元素如果後半部分看不懂請對照wufasp再瞧瞧運行結果仔細體會一下(什麼態度?)
  
   通過表單向服務器傳送數據(也可這樣理解服務器端如何讀取客戶端發送的數據)
  
  做過主頁應該知道很多主頁通常都使用Form表單讓用戶輸入數據然後通過submit(提交)按鈕發送數據From表單中的method有兩種主要方法POST和GETaction後一般都是指定一個cgipl或asp文件今天我們要學習的就是如果編寫這個asp文件
  (一) 如果使用POST方法傳送數據則用RequestForm來讀取數據
  先編輯如下一個文件供用戶輸入數據
  <html>
  <body bgcolor=#FFFFFF>
  <form method=post action=wufasp>
  姓名 <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=>
  <option>電腦</option>
  <option>購物</option>
  <option>電影</option>
  <option>讀書</option>
  </select> <br>
  <input type=submit name=Submit value=提交>
  <input type=reset name=Submit value=Reset>
  </form>
  </body>
  </html>
  再編寫一個需用到的文件wufasp收集數據
  <%@ Language=VBScript %>
  <%  wufasp
  Option Explicit
  ResponseExpires=
  Dim StrName StrGender StrM StrMsg
  
  StrName = Trim(RequestForm(yourname))  Trim函數用來除首尾空格
  StrGender = Trim(RequestForm(gender))
  StrM = Trim(RequestForm(message))
  StrMsg = Replace(StrMvbcrlf<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>
  <%= RequestForm(Submit)%><Br><Br>
  
  <% 先把上面看懂 有興趣再看看如何讀取多個選項
  ResponseWrite 共選擇愛好項數: & RequestForm(hobby)Count & <Br>
  Dim I
  For I = to RequestForm(hobby)Count
  ResponseWrite RequestForm(hobby)(I) & <Br>
  Next
  %>
  </BODY></HTML>
  在這個的例子中為了便於理解我們使用了兩個程序實際上只使用一個程序也可以如果有興趣請看下面的例程wufasp有助於加深對環境變量的理解
  <%@ Language=VBScript %>
  <%  wufasp
  Option Explicit
  ResponseExpires=
  Dim StrName StrGender StrM StrMsg
  
  If RequestServerVariables(Content_Length) <> Then
  提交數據後這個長度就不會是 因此執行下面的語句 將結果顯示出來
  下面一部分實際上是照搬 wufasp
  
  StrName = Trim(RequestForm(yourname))
  StrGender = Trim(RequestForm(gender))
  StrM = Trim(RequestForm(message))
  StrMsg = Replace(StrMvbcrlf<Br> & vbcrlf)
  %>
  <HTML><BODY>
  姓名: <%= StrName%><Br><Br>
  性別: <%= StrGender%><Br><Br>
  留言: <Br><Br>
  <%= StrM%><Br><Br>
  <%= StrMsg%><Br><Br>
  
  <%
  ResponseWrite 共選擇愛好項數: & RequestForm(hobby)Count & <Br>
  Dim I
  For I = to RequestForm(hobby)Count
  ResponseWrite RequestForm(hobby)(I) & <Br>
  Next
  %>
  </BODY></HTML>
  
  <%
  Else
  當第一次加載頁面時沒有提交任何數據故前面一部分並不執行而是從這裡開始
  這也就是為什麼會有兩對 <HTML></HTML> 的原因
  下面照搬 就行了
  <form method=post action=wufasp> 給用環境變量替換掉了 其實完全一樣
  ResponseWrite 看看結果: & RequestServerVariables(Script_name) & <Br>
  %>
  <HTML><BODY>
  <form method=post action=<%= RequestServerVariables(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=>
  <option>電腦</option>
  <option>購物</option>
  <option>電影</option>
  <option>讀書</option>
  </select> <br>
  <input type=submit name=Submit value=提交>
  <input type=reset name=Submit value=Reset>
  </form>
  </BO
From:http://tw.wingwit.com/Article/program/net/201311/12157.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.