Foros del Web » Programando para Internet » ASP Clásico »

Un request.form vacío, ¿qué lleva?

Estas en el tema de Un request.form vacío, ¿qué lleva? en el foro de ASP Clásico en Foros del Web. Es decir, si yo pongo en código asp: request.form, y dicha página no viene de ningún formulario (y por tanto no estará recibiendo valores), ¿qué ...
  #1 (permalink)  
Antiguo 14/02/2005, 12:30
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Un request.form vacío, ¿qué lleva?

Es decir, si yo pongo en código asp:

request.form, y dicha página no viene de ningún formulario (y por tanto no estará recibiendo valores), ¿qué contendrá dicho request.form ("elemento")?

Alguien podría preguntarse por qué quiero hacer un request.form vacío, lo explico:

quiero hacer una página cuyo formulario, llame a la misma página para mandarle los datos (recursiva).

Y quiero que la primera vez que se ejecute, no haga nada, por eso quiero poner:

if Request.form == ""
...

else

...

end if

Vamos, me gustaría saber por tanto qué poner entre esas dos comillas, si está vacío, o qué.

El problema es parecido a otro problema: el de inicialización de variables: si quiero una variable que se vaya incrementando de uno en uno, ¿cómo lo hago? si por ejemplo pongo a=a+1, me faltaría el valor inicial de a. Pero si pongo a=1 desde el principio, y después a=a+1, se sobreescribirá cada vez, me haría falta usar algún if para discernir si es la primera ejecución (y por tanto ha de asignarse un valor a "a").
  #2 (permalink)  
Antiguo 14/02/2005, 12:54
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Un Request.Form (o QueryString) vacío lleva exactamente eso: un valor vacio. Lo que querés hacer del form que se llama a si mismo, se hace muy amenudo. Yo lo suelo hacer así (por ejemplo para validar un usuario):

<%
If Request.Form() <> "" Then
' aquí compruebo que sea un usuario válido.
If not es_valido then
session.abandon()
redirigir_a = "esta_misma_pagina.asp?Error=Usuario y/o contraseña incorrecta"
Else
session("es_valido") = true
redirigir_a = "pagina_protegida.asp"
End if
Response.Redirect(redirigir_a)
Response.End()

Else

If Reuqest.QueryString("Error") <> "" Then
' acá mando un alert informando del error
End if
%>
acá va el formulario para ingresar nombre de ususario y password
<% end if %>
__________________
...___...

Última edición por AlZuwaga; 14/02/2005 a las 12:56
  #3 (permalink)  
Antiguo 14/02/2005, 21:32
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 4 meses
Puntos: 6
Muy interesante lo que pones. Permíteme que te haga unas cuantas preguntas que "me atormentan" jaja.

¿Me podrías explicar mejor dentro de qué página está integrado ese código?

Es decir, antes de que respondas, lo que quiero decir es que si ese código va en una página que es en la que se te pide el login y el password, la primera vez que la ejecutes, te dará error de login y password incorrectos (pues request.form estará vacío), aun cuando no hayas todavía escrito nada, ¿no es así? ¿No hay alguna forma de decir "en este instante" es la primera vez que ejecuto esta página? (me gustaría saber esto aun cuando el problema pueda solventarse sin ello). Si inicializas una variable en asp, y pones variable=variable+1, ¿qué saldrá? ¿cuál era su valor inicial? (esto último ya lo he aclarado haciendo las pruebas pertinentes: será como si se hubiese iniciado a 0).

La manera de redirigir con
redirigir_a = "esta_misma_pagina.asp?Error=Usuario y/o contraseña incorrecta"
me parece muy ingeniosa, pero, ¿podrías decirme qué hace eso exactamente, qué significa el símbolo de interrogación y qué provoca?

Gracias

Última edición por un_tio; 14/02/2005 a las 21:33
  #4 (permalink)  
Antiguo 15/02/2005, 01:27
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 5 meses
Puntos: 3
ya mira.. esa q sale después del signo de interrogación es información que se envia a la página esta_misma_pagina.asp
es como enviar información de un formulario con el method="get"
para recuperar la info es asi
<%=request.QueryString("Error")%>
tb puedes mandar varios valores
esta_misma_pagina.asp?Error=Usuario y/o contraseña incorrecta&error2=otra info

pero bueno.. sabes cual creo q es la mejor lógica? si se viene de alguna página.. si se viene de alguna página entonces se hace la busca del usuario y su password, cómo? asi:

<%
if Request.ServerVariables("HTTP_REFERER") <> "" then
'haces el request.form y todo eso
end if
%>
qué es lo que hace Request.ServerVariables("HTTP_REFERER")? te dice de qué página viene el visitante. tb te puede si tienes tu banner en alguna página y saber si el visitante llegó desde esa página o de cual llegó.. espero te sirva mi ayuda

si quieres saber más sobre querystring entra a http://www.soloasp.com.ar/vereje.asp?eje=12
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
  #5 (permalink)  
Antiguo 15/02/2005, 10:22
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Cita:
...es que si ese código va en una página que es en la que se te pide el login y el password, la primera vez que la ejecutes, te dará error de login y password incorrectos (pues request.form estará vacío)
No, por eso lo primero que hago es preguntar por request.form()
Si request.form no contiene ningún dato, mediante el primer IF le indico dos cosas:
-La primera es que presente el formulario para ingresar.
-La segunda que se fije si request.QueryString("Error") tiene algún valor. Si lo tiene, presentará el mensaje.

Por el otro lado, si request.form contiene datos, hago la verificación del usuario. Aquí, si es un usuario válido, le creo una variable session y lo redirijo a la página protegida (la cuál verificará el estado de esa variable session para decidir si dejarlo entrar o si, de manera diplomática, mandarlo bien a la mierda ;). Si no llegase a ser un usuario válido, le destruyo todas las variables session que pudiese tener (al pedo, creo ) y lo mando a la misma página pasándole un parámetro ("misma_pagina.asp?Error=..."). Al mandarlo con response.redirect, el estado de request.form() se pierde, por lo que nuevamente éste será vacío y le mostrará el formulario para que se loguée nuevamente y... volvemos a comenzar ;)

Espero se haya entendido la explicación
Salú
__________________
...___...
  #6 (permalink)  
Antiguo 15/02/2005, 12:54
Avatar de mamon  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 1.302
Antigüedad: 22 años, 5 meses
Puntos: 3
pero tú mismo tienes la solución. entonces ya no sé cual es tu pegunta... o no sabes cómo hacerlo?
__________________
Yo si sé lo que es trabajar duro, porque lo he visto.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:12.