ASP 表单和用户输入
Request.QueryString 和 Request.Form 命令用于从表单取回信息,比如用户的输入。
在线实例
使用 method="get" 的表单
本例演示如何使用 Request.QueryString 命令与用户进行交互。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!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 命令与用户进行交互。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!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 命令通过单选按钮与用户进行交互。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <!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 对象可用于从表单取回用户信息。
HTML 表单实例
1 | <div><form method= "get" action= "simpleform.asp" ><br> First Name: <input type= "text" name= "fname" ><br><br> Last Name: <input type= "text" name= "lname" ><br><br><br> <input type= "submit" value= "Submit" ><br> </form></div>
|
用户输入可通过 Request.QueryString 或 Request.Form 命令取回。
Request.QueryString
Request.QueryString 命令用于收集使用 method="get" 的表单中的值。
使用 GET 方法从表单传送的信息对所有的用户都是可见的(出现在浏览器的地址栏),并且对所发送信息的量也有限制。
如果用户在上面的 HTML 表单中输入 "Bill" 和 "Gates",发送至服务器的 URL 会类似这样:
假设 "simpleform.asp" 文件包含下面的 ASP 脚本:
1 | <div><body><br> Welcome<br> <%<br> response.write(request.querystring( "fname" ))<br> response.write( " " & request.querystring( "lname" ))<br> %><br> </body></div>
|
浏览器将把文档的 body 部分显示如下:
Request.Form
Request.Form 命令用于收集使用 method="post" 的表单中的值。
使用 POST 方法从表单传送的信息对用户是不可见的,并且对所发送信息的量没有限制。
如果用户在上面的 HTML 表单中输入 "Bill" 和 "Gates",发送至服务器的 URL 会类似这样:
假设 "simpleform.asp" 文件包含下面的 ASP 脚本:
1 | <div><body><br> Welcome<br> <%<br> response.write(request.form( "fname" ))<br> response.write( " " & request.form( "lname" ))<br> %><br> </body></div>
|
浏览器将把文档的 body 部分显示如下:
表单验证
只要有可能,就尽量在浏览器上对用户的输入进行验证(通过客户端脚本)。浏览器的验证速度更快,并可以减少服务器的负载。
如果用户输入会保存到数据库中,那么您应该考虑使用服务器端验证。有一种在服务器端验证表单的好方法,就是将(验证过的)表单传回表单页面,而不是转至不同的页面。用户随后就可以在同一个页面中得到错误的信息。这样做更易于用户发现错误。