|
|
|

|

|
Dicas
|

|
ASP - Active Server Page (Miscelâneas)
|
|
 |
Título da Dica: Request.Querystring( ) aprofundado
|
 |
|
|
Postada em 27/10/2003 por ^HEAVY-METAL^
O Request.QueryString é similar com o Request.Forme a sua definição formal é quase idêntica também :
Request.QueryString(elemento)[(index)|.Count]
Aquando de lidarmos com o objecto Request nós estamos a aceder a informação dado ou devolvida por um cliente. O acesso por QueryString é a informação que está a seguir ao URL na barra de endereço do browser. Para começar vamos ver um exemplo prático. Quando comecei a programar entrei num dilema : vou alterar o index da minha página por cada vez que existem novas sub-páginas, ou fazer algo para o fazer automáticamente ? Eu claro, escolhi o último. Aqui está como. Quase todo o link na minha página default.asp é composta da seguinte maneira.
verifica.asp?pagina=<nome da página aqui>
O script verifica.asp vai então validae se a página pedida existe, e se isso acontecer ele vai redireccionar a pessoa à mesma, senão para uma outra que tem o simbolo de estar em construção. O código é o seguinte:
-- verifica.asp --
<% Response.Expires=0 pagina=Request.QueryString("pagina") path = Server.MapPath(pagina) Set fs = Server.CreateObject("Scripting.FileSystemObject") If Not fs.FileExists(path) Then Response.Redirect "construcao.asp" Else Response.Redirect pagina End If %>
-- Fim de página --
Response.expires=0 diz aos proxies e browsers para não fazer cache à página. A próxima linha é o foco deste artigo. Na mesma eu peço o nome da página dada pelo link na variável pagina. Então posso usar a mesma para o processo que vou fazer. Em particular eu faço um assign do path da path real do ficheiro usando o método Server.MapPath e então testar a existência do mesmo usando o objecto Scripting.FileSystemObject. Se a página existe então fazemos o Response.Redirect( que serve para redireccionamento ) para enviar o utilizador para o objectivo.
De volta ao Request.QueryString. Este método de passar a informação pode ser usada de duas maneiras, com dois objectivos diferentes em mente. Vimos o primeiro e vamos agora passar ao segundo. se já leu o meu artigo sobre o Request.Form, vai notar que existem dois formulários de fazer posting ao form.
<form name="nome_do_form" action="página_ou_cgi" method="post_ou_get">
Depois de dado o valor pelo método de atribuição, o browser vai passar toda a informação para o servidor para o link pedido, assim como nas headers de http. Para aceder a esta informação por ASP, tem de usar a colecção Request.QueryString da mesam maneira do Request.Form. Vamos então ver com mais algum detalhe.
<form method="get"> Your name<input type="text" name="name"><br> Your age<select name="age"> <option value="0">Under 18</option> <option value="1">Between 18 and 23</option> <option value="2">Between 24 and 45</option> <option value="3">Older than 45</option> </select> </form>
Este pequeno formulário de HMTL é a base da nossa discussão. Vamos dizer que temos um script que aceita o nosso form. E que queremos que a informação recolhida do user para variáveis. Então o código será :
<% name=Request.QueryString("name") age_classe=Request.QueryString("age")
%><html> <head> <title>QueryString Example</title> </head> <body> your name:<%=name%><br> You are aged <% Select Case age_classe Case 0 Response.Write "under 18 years." Case 1 Response.Write "between 19 and 23 years." Case 2 Response.Write "between 24 and 45 years." Case 3 Response.Write " more than 45 years." End Select %> </body> </html>
T+,
|
|
|
|

|