©
Ce document utilise Manuel du site Web PHP chinois Libérer
Request 对象用于从访客那里获取信息。
当浏览器向服务器请求页面时,这个行为就被称为一个 request(请求)。Request 对象用于从用户那里获取信息。它的集合、属性和方法描述如下:
集合 | 描述 |
---|---|
ClientCertificate | 包含了存储在客户证书中的所有的字段值。 |
Cookies | 包含了 HTTP 请求中发送的所有的 cookie 值。 |
Form | 包含了使用 post 方法由表单发送的所有的表单(输入)值。 |
QueryString | 包含了 HTTP 查询字符串中所有的变量值。 |
ServerVariables | 包含了所有的服务器变量值。 |
属性 | 描述 |
---|---|
TotalBytes | 返回在请求正文中客户端发送的字节总数。 |
方法 | 描述 |
---|---|
BinaryRead | 取回作为 post 请求的一部分而从客户端发送至服务器的数据,并把它存储在一个安全的数组中。 |
当用户点击链接时发送查询信息
本例演示如何在链接中向页面发送查询信息,并在目标页面中取回这些信息(在本例中是同一页面)。
<!DOCTYPE html> <html> <body> <a href="demo_simplequerystring.asp?color=green">Example</a> <% Response.Write(Request.QueryString) %> </body> </html>
QueryString 集合的简单应用
本例演示如何使用 QueryString 集合从表单取回值。(此表单使用 GET 方法,这意味着所发送的信息对用户来说是可见的。)
<!DOCTYPE html> <html> <body> <form action="demo_simplereqquery.asp" method="get"> First name: <input type="text" name="fname"><br> Last name: <input type="text" name="lname"><br> <input type="submit" value="Submit"> </form> <% Response.Write(Request.QueryString) %> </body> </html>
如何使用来自表单的信息
本例演示如何使用从表单取回的值。此表单使用 GET 方法。
<!DOCTYPE html> <html> <body> <form action="demo_simplereqquery.asp" method="get"> First name: <input type="text" name="fname"><br> Last name: <input type="text" name="lname"><br> <input type="submit" value="Submit"> </form> <% Response.Write(Request.QueryString) %> </body> </html>
来自表单的更多信息
本例演示如果输入字段包含若干相同的名称,QueryString 集合会包含什么内容。它将展示如何使用 Count 关键词来对 "name" 属性进行计数。此表单使用 GET 方法。
<!DOCTYPE html> <html> <body> <% If Request.QueryString<>"" Then If Request.QueryString("name")<>", " Then name1=Request.QueryString("name")(1) name2=Request.QueryString("name")(2) end if end if %> <form action="demo_reqquery2.asp" method="get"> First name: <input type="text" name="name" value="<%=name1%>" /> <br> Last name: <input type="text" name="name" value="<%=name2%>" /> <br> <input type="submit" value="Submit" /> </form> <hr> <% If Request.QueryString<>"" Then Response.Write("<p>") Response.Write("The information received from the form was:") Response.Write("</p><p>") Response.Write("name=" & Request.QueryString("name")) Response.Write("</p><p>") Response.Write("The name property's count is: ") Response.Write(Request.QueryString("name").Count) Response.Write("</p><p>") Response.Write("First name=" & name1) Response.Write("</p><p>") Response.Write("Last name=" & name2) Response.Write("</p>") end if %> </body> </html>
Form 集合的简单应用
本例演示如何使用 Form 集合从表单取回值。(此表单使用 POST 方法,这意味着所发送的信息对用户来说是不可见的。)
<!DOCTYPE html> <html> <body> <form action="demo_simpleform1.asp" method="post"> First name: <input type="text" name="fname" value="Donald" /> <br> Last name: <input type="text" name="lname" value="Duck" /> <br> <input type="submit" value="Submit" /> </form> <% Response.Write(Request.Form) %> </body> </html>
如何使用来自表单的信息
本例演示如何使用从表单取回的值。此表单使用了 POST 方法。
<!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>
来自表单的更多信息
本例演示如果输入字段包含若干相同的名称,Form 集合会包含什么内容。它将展示如何使用 Count 关键词来对 "name" 属性进行计数。此表单使用了 POST 方法。
<!DOCTYPE html> <html> <body> <form action="demo_form2.asp" method="post"> First name: <input type="text" name="name" value="Donald" /> <br> Last name: <input type="text" name="name" value="Duck" /> <br> <input type="submit" value="Submit" /> </form> <hr> <p>The information received from the form above was:</p> <% If Request.Form("name")<>"" Then Response.Write("<p>") Response.Write("name=" & Request.Form("name")) Response.Write("</p><p>") Response.Write("The name property's count is: ") Response.Write(Request.Form("name").Count) Response.Write("</p><p>") Response.Write("First name=" & Request.Form("name")(1)) Response.Write("</p><p>") Response.Write("Last name=" & Request.Form("name")(2)) Response.Write("</p>") End if %> </body> </html>
带有单选按钮的表单
本例演示如何使用 Form 集合通过单选按钮与用户进行交互。此表单使用 POST 方法。
<!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>
带有复选框的表单
本例演示如何使用 Form 集合通过复选框与用户进行交互。此表单使用 POST 方法。
<!DOCTYPE html> <html> <body> <% fruits=Request.Form("fruits") %> <form action="demo_checkboxes.asp" method="post"> <p>Which of these fruits do you prefer:</p> <input type="checkbox" name="fruits" value="Apples" <%if instr(fruits,"Apple") then Response.Write("checked")%>> Apple <br> <input type="checkbox" name="fruits" value="Oranges" <%if instr(fruits,"Oranges") then Response.Write("checked")%>> Orange <br> <input type="checkbox" name="fruits" value="Bananas" <%if instr(fruits,"Banana") then Response.Write("checked")%>> Banana <br> <input type="submit" value="Submit"> </form> <% if fruits<>"" then%> <p>You like: <%Response.Write(fruits)%></p> <%end if %> </body> </html>
获取服务器变量
本例演示如何取得访客的浏览器类型、IP 地址等信息。
<!DOCTYPE html> <html> <body> <p> <b>You are browsing this site with:</b> <%Response.Write(Request.ServerVariables("http_user_agent"))%> </p> <p> <b>Your IP address is:</b> <%Response.Write(Request.ServerVariables("remote_addr"))%> </p> <p> <b>The DNS lookup of the IP address is:</b> <%Response.Write(Request.ServerVariables("remote_host"))%> </p> <p> <b>The method used to call the page:</b> <%Response.Write(Request.ServerVariables("request_method"))%> </p> <p> <b>The server's domain name:</b> <%Response.Write(Request.ServerVariables("server_name"))%> </p> <p> <b>The server's port:</b> <%Response.Write(Request.ServerVariables("server_port"))%> </p> <p> <b>The server's software:</b> <%Response.Write(Request.ServerVariables("server_software"))%> </p> </body> </html>
You are browsing this site with: Your IP address is: 42.120.45.233 The DNS lookup of the IP address is: 42.120.45.233 The method used to call the page: GET The server's domain name: shouce.ren The server's port: 80 The server's software: Microsoft-IIS/7.5
创建 welcome cookie
本例演示如何创建一个 Welcome Cookie。
<% dim numvisits response.cookies("NumVisits").Expires=date+365 numvisits=request.cookies("NumVisits") if numvisits="" then response.cookies("NumVisits")=1 response.write("Welcome! This is the first time you are visiting this Web page.") else response.cookies("NumVisits")=numvisits+1 response.write("You have visited this ") response.write("Web page " & numvisits) if numvisits=1 then response.write " time before!" else response.write " times before!" end if end if %> <!DOCTYPE html> <html> <body> </body> </html>
探测用户发送的字节总数
本例演示如何探测用户在 Request 对象中发送的字节总数。
<!DOCTYPE html> <html> <body> <form action="demo_totalbytes.asp" method="post"> Please type something: <input type="text" name="txt"><br><br> <input type="submit" value="Submit"> </form> <% If Request.Form("txt")<>"" Then Response.Write("You submitted: ") Response.Write(Request.Form) Response.Write("<br><br>") Response.Write("Total bytes: ") Response.Write(Request.Totalbytes) End If %> </body> </html>