麻辣家族討論版版's Archiver

小誌 發表於 2010-5-10 14:11

(ASP教學第5篇)Request 物件

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

[table=98%]
[tr][td=1,1,274][p=30, 2, center][font=Courier New][size=2][font=全真中細圓體]名稱[/font][font=全真中細圓體][/font][/size][/font][/p][/td][td=1,1,312][p=30, 2, center][font=全真中細圓體][font=Courier New][size=2]說明[/size][/font][/font][/p][/td][/tr]
[tr][td=1,1,274][p=30, 2, left][color=#000000][font=Courier New][size=2][font=全真中細圓體]Request.Form("[/font][font=全真中細圓體]變數名")[/font][/size][/font][/color][/p][/td][td=1,1,312][p=30, 2, left][color=#000000][font=Courier New][size=2][font=全真中細圓體]取得客戶端利用表單所傳送的資料[/font][/size][/font][/color][/p][/td][/tr]
[tr][td=1,1,274][p=30, 2, left][color=#000000][font=Courier New][size=2][font=全真中細圓體]Request.QueryString ("[/font][font=全真中細圓體]變數名")[/font][/size][/font][/color][/p][/td][td=1,1,312][p=30, 2, left][color=#000000][font=Courier New][size=2][font=全真中細圓體]取得附帶在網址後面的參數[/font][/size][/font][/color][/p][/td][/tr]
[tr][td=1,1,274][p=30, 2, left][color=#000000][font=Courier New][size=2][font=全真中細圓體]Request.Cookies("[/font][font=全真中細圓體]變數名")[/font][/size][/font][/color][/p][/td][td=1,1,312][p=30, 2, left][font=全真中細圓體][color=#000000][font=Courier New][size=2]取得存在於客戶端瀏覽器的Cookies資料[/size][/font][/color][/font][/p][/td][/tr]
[tr][td=1,1,274][p=30, 2, left][color=#000000][font=Courier New][size=2][font=全真中細圓體]Request.ServerVariables("[/font][font=全真中細圓體]變數名")[/font][/size][/font][/color][/p][/td][td=1,1,312][p=30, 2, left][font=全真中細圓體][color=#000000][font=Courier New][size=2]取得網頁伺服端的環境變數資訊[/size][/font][/color][/font][/p][/td][/tr]
[/table]
本單元將針對 Request.Form("變數名稱") 作介紹,其它部分將 Cookies 物件及 Server 物件單元中介紹。

[color=magenta][size=4][b]實做學習[/b][/size][/color]
以簡單訪客留言為例 製作一表單,這不是真的留言版喔,我們並沒有將資料記錄到檔案或資料庫中!:(message.htm)
[attach]197[/attach]
[list=1]
[*]<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)。[/list]
執行結果如下圖:
[attach]198[/attach]

我們剛剛說:按下傳送鈕後會啟動Server端之ASP程式,即原始碼中之action="go.asp" ,那go.asp程式網頁是如何運作的呢?我們現在就來分析一下go.asp程式碼:
[list]
[*]利用 request 物件取回 message.htm 網頁中資料輸出識別名稱為『name』的欄位資料,並將其資料放置到『name』 的變數中。[*]利用 request 物件取回 message.htm 網頁中資料輸出識別名稱為『email』 的欄位資料,並將其資料放置到『email』 的變數中。[*]利用 request 物件取回 message.htm 網頁中資料輸出識別名稱為『memo』 的欄位資料,並將其資料放置到『memo』 的變數中。[/list]
[attach]200[/attach]
則執行結果如下圖所示:
[attach]201[/attach]

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

message.html原始碼[code]<html>
<body bgcolor="#ffffff">
<form action="go.asp" method="post">
<table border="1">
<tr>
<td>姓名:</td>
<td><input type="text" size="15" name="name"></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" size="30" name="email"></td>
</tr>
<tr>
<td>留言:</td>
<td><textarea name="memo" cols=30 rows=3></textarea></td>
</tr>
<tr>   
<td colspan=2><input type=submit value="傳送"></td>
</tr>
</table>
</form>
</body>   
</html>[/code]go.asp原始碼[code]<%
name=request("name")
email=request("email")
memo=request("memo")
if name=empty or email=empty or memo=empty then
  response.write "姓名或email或留言,任何一欄位不可為空白,請重新輸入"
  response.end
end if
memo=replace(memo,vbcrlf,"<br>")
%>
<html>
<body>
<table border=1>
<tr>
<td>留言者:<%=name%></td><td>Email:<%=email%></td>
</tr>
<tr bgcolor=#ffffcc><td colspan=2><%=memo%></td>
</tr>
</table>
</body>
</html>[/code]

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供