?
? ????? PHP ??? ???? ??? ?? ??
Request.QueryString 和 Request.Form 命令用于從表單取回信息,比如用戶的輸入。
使用 method="get" 的表單
本例演示如何使用 Request.QueryString 命令與用戶進(jìn)行交互。
<!DOCTYPE?html> <html> <body> <form?action="demo_reqquery.asp"?method="get"> Your?name:?<input?type="text"?name="fname"?size="20"?/> <input?type="submit"?value="Submit"?/> </form> <% dim?fname fname=Request.QueryString("fname") If?fname<>""?Then ??????Response.Write("Hello?"?&?fname?&?"!<br>") ??????Response.Write("How?are?you?today?") End?If %> </body> </html>
使用 method="post" 的表單
本例演示如何使用 Request.Form 命令與用戶進(jìn)行交互。
<!DOCTYPE?html> <html> <body> <form?action="demo_simpleform.asp"?method="post"> Your?name:?<input?type="text"?name="fname"?size="20"?/> <input?type="submit"?value="Submit"?/> </form> <% dim?fname fname=Request.Form("fname") If?fname<>""?Then ??????Response.Write("Hello?"?&?fname?&?"!<br>") ??????Response.Write("How?are?you?today?") End?If %> </body> </html>
使用單選按鈕的表單
本例演示如何使用 Request.Form 命令通過單選按鈕與用戶進(jìn)行交互。
<!DOCTYPE?html> <html> <% dim?cars cars=Request.Form("cars") %> <body> <form?action="demo_radiob.asp?method="post"> <p>Please?select?your?favorite?car:</p> <input?type="radio"?name="cars" <%if?cars="Volvo"?then?Response.Write("checked")%> value="Volvo">Volvo</input> <br> <input?type="radio"?name="cars" <%if?cars="Saab"?then?Response.Write("checked")%> value="Saab">Saab</input> <br> <input?type="radio"?name="cars" <%if?cars="BMW"?then?Response.Write("checked")%> value="BMW">BMW</input> <br><br> <input?type="submit"?value="Submit"?/> </form> <% if?cars<>""?then ???Response.Write("<p>Your?favorite?car?is:?"?&?cars?&?"</p>") end?if %> </body> </html>
Request 對象可用于從表單取回用戶信息。
<form method="get" action="simpleform.asp">
First Name: <input type="text" name="fname"><br>
Last Name: <input type="text" name="lname"><br><br>
<input type="submit" value="Submit">
</form>
用戶輸入可通過 Request.QueryString 或 Request.Form 命令取回。
Request.QueryString 命令用于收集使用 method="get" 的表單中的值。
使用 GET 方法從表單傳送的信息對所有的用戶都是可見的(出現(xiàn)在瀏覽器的地址欄),并且對所發(fā)送信息的量也有限制。
如果用戶在上面的 HTML 表單中輸入 "Bill" 和 "Gates",發(fā)送至服務(wù)器的 URL 會(huì)類似這樣:
http://www.shouce.ren/simpleform.asp?fname=Bill&lname=Gates
假設(shè) "simpleform.asp" 文件包含下面的 ASP 腳本:
<body>
Welcome
<%
response.write(request.querystring("fname"))
response.write(" " & request.querystring("lname"))
%>
</body>
瀏覽器將把文檔的 body 部分顯示如下:
Welcome?Bill?Gates
Request.Form 命令用于收集使用 method="post" 的表單中的值。
使用 POST 方法從表單傳送的信息對用戶是不可見的,并且對所發(fā)送信息的量沒有限制。
如果用戶在上面的 HTML 表單中輸入 "Bill" 和 "Gates",發(fā)送至服務(wù)器的 URL 會(huì)類似這樣:
http://www.shouce.ren/simpleform.asp
假設(shè) "simpleform.asp" 文件包含下面的 ASP 腳本:
<body>
Welcome
<%
response.write(request.form("fname"))
response.write(" " & request.form("lname"))
%>
</body>
瀏覽器將把文檔的 body 部分顯示如下:
Welcome?Bill?Gates
只要有可能,就盡量在瀏覽器上對用戶的輸入進(jìn)行驗(yàn)證(通過客戶端腳本)。瀏覽器的驗(yàn)證速度更快,并可以減少服務(wù)器的負(fù)載。
如果用戶輸入會(huì)保存到數(shù)據(jù)庫中,那么您應(yīng)該考慮使用服務(wù)器端驗(yàn)證。有一種在服務(wù)器端驗(yàn)證表單的好方法,就是將(驗(yàn)證過的)表單傳回表單頁面,而不是轉(zhuǎn)至不同的頁面。用戶隨后就可以在同一個(gè)頁面中得到錯(cuò)誤的信息。這樣做更易于用戶發(fā)現(xiàn)錯(cuò)誤。