ASP 表单和用户输入

Request.QueryString 和 Request.Form 命令可用于从表单取回信息,比如用户的输入。

实例:

使用 method="get" 的表单

如何使用 Request.QueryString 命令与用户进行交互。

  1. <html>
  2. <body>
  3. <form action="/example.mde/demo.mde_reqquery.md" method="get">
  4. 您的姓名:<input type="text" name="fname" size="20" />
  5. <input type="submit" value="提交" />
  6. </form>
  7. <%
  8. dim fname
  9. fname=Request.QueryString("fname")
  10. If fname<>"" Then
  11. Response.Write("你好!" & fname & "!<br />")
  12. Response.Write("今天过得怎么样?")
  13. End If
  14. %>
  15. </body>
  16. </html>

使用 method="post" 的表单

如何使用 Request.Form 命令与用户进行交互。

  1. <html>
  2. <body>
  3. <form action="/example.mde/demo.mde_simpleform.md" method="post">
  4. 您的姓名:<input type="text" name="fname" size="20" />
  5. <input type="submit" value="提交" />
  6. </form>
  7. <%
  8. dim fname
  9. fname=Request.Form("fname")
  10. If fname<>"" Then
  11. Response.Write("您好!" & fname & "!<br />")
  12. Response.Write("今天过得怎么样?")
  13. End If
  14. %>
  15. </body>
  16. </html>

使用单选按钮的表单

如何使用 Request.Form 通过单选按钮与用户进行交互。

  1. <html>
  2. <%
  3. dim cars
  4. cars=Request.Form("cars")
  5. %>
  6. <body>
  7. <form action="/example.mde/demo.mde_radiob.md" method="post">
  8. <p>请选择您喜欢的汽车:</p>
  9. <input type="radio" name="cars"
  10. <%if cars="Volvo" then Response.Write("checked")%>
  11. value="Volvo">Volvo</input>
  12. <br />
  13. <input type="radio" name="cars"
  14. <%if cars="Saab" then Response.Write("checked")%>
  15. value="Saab">Saab</input>
  16. <br />
  17. <input type="radio" name="cars"
  18. <%if cars="BMW" then Response.Write("checked")%>
  19. value="BMW">BMW</input>
  20. <br /><br />
  21. <input type="submit" value="提交" />
  22. </form>
  23. <%
  24. if cars<>"" then
  25. Response.Write("<p>您喜欢的汽车是" & cars & "</p>")
  26. end if
  27. %>
  28. </body>
  29. </html>

用户输入

Request 对象可用于从表单取回用户信息。

HTML 表单实例

  1. <form method="get" action="simpleform.md">
  2. <p>First Name: <input type="text" name="fname" /></p>
  3. <p>Last Name: <input type="text" name="lname" /></p>
  4. <input type="submit" value="Submit" />
  5. </form>

用户输入的信息可通过两种方式取回:Request.QueryString 或 Request.Form。

Request.QueryString

Request.QueryString 命令用于搜集使用 method="get" 的表单中的值。使用 GET 方法从表单传送的信息对所有的用户都是可见的(出现在浏览器的地址栏),并且对所发送信息的量也有限制。

HTML 表单实例

  1. <form method="get" action="simpleform.md">
  2. <p>First Name: <input type="text" name="fname" /></p>
  3. <p>Last Name: <input type="text" name="lname" /></p>
  4. <input type="submit" value="Submit" />
  5. </form>

如果用户在上面的表单实例中输入 "Bill" 和 "Gates",发送至服务器的 URL 会类似这样:

  1. http://www.jishuchi.com/simpleform.md?fname=Bill&lname=Gates

假设 ASP 文件 "simpleform.md" 包含下面的代码:

  1. <body>
  2. Welcome
  3. <%
  4. response.write(request.querystring("fname"))
  5. response.write(" " & request.querystring("lname"))
  6. %>
  7. </body>

浏览器将显示如下:

  1. Welcome Bill Gates

Request.Form

Request.Form 命令用于搜集使用 "post" 方法的表单中的值。使用 POST 方法从表单传送的信息对用户是不可见的,并且对所发送信息的量也没有限制。

HTML 表单实例

  1. <form method="post" action="simpleform.md">
  2. <p>First Name: <input type="text" name="fname" /></p>
  3. <p>Last Name: <input type="text" name="lname" /></p>
  4. <input type="submit" value="Submit" />
  5. </form>

如果用户在上面的表单实例中输入 "Bill" 和 "Gates",发送至服务器的 URL 会类似这样:

  1. http://www.jishuchi.com/simpleform.md

假设 ASP 文件 "simpleform.md" 包含下面的代码:

  1. <body>
  2. Welcome
  3. <%
  4. response.write(request.form("fname"))
  5. response.write(" " & request.form("lname"))
  6. %>
  7. </body>

浏览器将显示如下:

  1. Welcome Bill Gates

表单验证

只要有可能,就应该对用户输入的数据进行验证(通过客户端的脚本)。浏览器端的验证速度更快,并可以减少服务器的负载。

如果用户数据会输入到数据库中,那么你应该考虑使用服务器端的验证。有一种在服务器端验证表单的好的方式,就是将(验证过的)表单传回表单页面,而不是转至不同的页面。用户随后就可以在同一个页面中得到错误的信息。这样做的话,用户就更容易发现错误了。