返回列表 上一主題 發帖

[教學] (ASP教學第5篇)Request 物件

[教學] (ASP教學第5篇)Request 物件

Request 物件
Request 物件與Response 物件是一對的的,為何如此說呢?因為Response 物件是回應資料給瀏覽器,而Request 物件是讀取瀏覽器的資料,通常包含了使用者端的相關訊息,如瀏覽器的種類、表頭資訊、表單參數及 Cookies....等,Request物件提供下列資料集合。

名稱

說明

Request.Form("變數名")

取得客戶端利用表單所傳送的資料

Request.QueryString ("變數名")

取得附帶在網址後面的參數

Request.Cookies("變數名")

取得存在於客戶端瀏覽器的Cookies資料

Request.ServerVariables("變數名")

取得網頁伺服端的環境變數資訊


本單元將針對 Request.Form("變數名稱") 作介紹,其它部分將 Cookies 物件及 Server 物件單元中介紹。

實做學習
以簡單訪客留言為例 製作一表單,這不是真的留言版喔,我們並沒有將資料記錄到檔案或資料庫中!message.htm)


  • <form> 標籤的 action (動作)屬性值設定為『go.asp』代表我們按下『傳送』按鈕後,將由伺服端的『go.asp』接收由此網頁所傳出的網頁資料並加以處理。
  • <form> 標籤的 method (傳輸方式)屬性值設定為『post』代表我們按下『傳送』按鈕後,瀏覽器將不會立即主動的將資料傳給伺服器,而會等候伺服端來讀取資料並加以處理。另一種method (傳輸方式)屬性值設定為『get』代表我們按下『傳送』按鈕後,瀏覽器將會立即主動的將資料傳給伺服器,使用這種方式並不太好!因為當我們按下『傳送』按鈕後,表單中的資料將會附在網址之後傳送到伺服器。
  • 文字輸入欄位<input>:『type』 屬性為輸入欄位的類型,其文字欄位設定值有三種,分別為:『Text』文字輸入欄位(只能輸入單行文字)、『Password』保密輸入欄位(單行文字輸入,輸入的文字將以星字號代替)、『Textarea』文字輸入區塊(可輸入多行文字)。
  • 文字輸入欄位<input>:『size』 屬性為文字輸入欄位的寬度。
  • 文字輸入欄位<input>:『name』 屬性為資料輸出的識別名稱。
  • 文字輸入欄位<input>:『cols』 屬性與『rows』屬性分別為設定『Textarea』文字輸入區塊的欄位數及行數。
  • 若將『type』 屬性值設為『submit』,則代表此一欄位為一按鈕(Button),按下此按鈕則可將表單中的資料送出,其『value』 屬性值適用來設定按鈕的標題文字(Caption)。

執行結果如下圖:
2.png

我們剛剛說:按下傳送鈕後會啟動Server端之ASP程式,即原始碼中之action="go.asp" ,那go.asp程式網頁是如何運作的呢?我們現在就來分析一下go.asp程式碼:

  • 利用 request 物件取回 message.htm 網頁中資料輸出識別名稱為『name』的欄位資料,並將其資料放置到『name』 的變數中。
  • 利用 request 物件取回 message.htm 網頁中資料輸出識別名稱為『email』 的欄位資料,並將其資料放置到『email』 的變數中。
  • 利用 request 物件取回 message.htm 網頁中資料輸出識別名稱為『memo』 的欄位資料,並將其資料放置到『memo』 的變數中。


則執行結果如下圖所示:
4.png

提示:<%=顯示內容%>是<%response.write "顯示內容"%>的簡便寫法!
若單純只有取得表單之變數名稱,則 Request.Form("變數名稱"), 亦可寫成 Request("變數名稱")。

message.html原始碼
  1. <html>
  2. <body bgcolor="#ffffff">
  3. <form action="go.asp" method="post">
  4. <table border="1">
  5. <tr>
  6. <td>姓名:</td>
  7. <td><input type="text" size="15" name="name"></td>
  8. </tr>
  9. <tr>
  10. <td>Email:</td>
  11. <td><input type="text" size="30" name="email"></td>
  12. </tr>
  13. <tr>
  14. <td>留言:</td>
  15. <td><textarea name="memo" cols=30 rows=3></textarea></td>
  16. </tr>
  17. <tr>   
  18. <td colspan=2><input type=submit value="傳送"></td>
  19. </tr>
  20. </table>
  21. </form>
  22. </body>   
  23. </html>
複製代碼
go.asp原始碼
  1. <%
  2. name=request("name")
  3. email=request("email")
  4. memo=request("memo")
  5. if name=empty or email=empty or memo=empty then
  6.   response.write "姓名或email或留言,任何一欄位不可為空白,請重新輸入"
  7.   response.end
  8. end if
  9. memo=replace(memo,vbcrlf,"<br>")
  10. %>
  11. <html>
  12. <body>
  13. <table border=1>
  14. <tr>
  15. <td>留言者:<%=name%></td><td>Email:<%=email%></td>
  16. </tr>
  17. <tr bgcolor=#ffffcc><td colspan=2><%=memo%></td>
  18. </tr>
  19. </table>
  20. </body>
  21. </html>
複製代碼
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

        靜思自在 : 時時好心就是時時好日。
返回列表 上一主題