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

pregunta para los que entienden...

Estas en el tema de pregunta para los que entienden... en el foro de ASP Clásico en Foros del Web. Tengo una web (WEB1) con un formulario para entrar login y password. Si el login y password son correctos quiero que me vaya a otra ...
  #1 (permalink)  
Antiguo 01/06/2004, 12:15
 
Fecha de Ingreso: mayo-2004
Mensajes: 40
Antigüedad: 21 años
Puntos: 0
Exclamación pregunta para los que entienden...

Tengo una web (WEB1) con un formulario para entrar login y password.

Si el login y password son correctos quiero que me vaya a otra web (WEB2).

Y si el login o password son incorrectos que me vaya a otra web (WEB3).

Aunque me ha costado días llegar hasta aqui, de momento lo tengo todo correcto y me funciona sin ningún fallo.

El problema me viene ahora...

Quiero que en la WEB2 me muestre el nombre del usuario.

¿Cómo lo puedo hacer? he provado lo del request.form, y todo eso, pero me da éste problema:

Tipo de error:
ADODB.Field (0x80020009)
El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual.
/sintesis/mostrarfacturas.asp


no entiendo mucho pero es como si no pudiera utilizar los valores entrados en en formulario de la WEB01. como se podria hacer?

¿se puede guardar el valor de la contraseña y login en una variable para poderlos usar en otra web?

si alguien quiere ver lo que me pasa exactamente...

ir al botón de "zona clientes". luego apretar el primer vinculo. escribir login: vd34d y contraseña 123dd y "entrar".

http://62.57.38.200/sintesis/index.html

p.d: la web es muy cutre. :D antes d cuidar el diseño quiero que me funcione todo.

gracias.

saludos a todos.
  #2 (permalink)  
Antiguo 01/06/2004, 12:22
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Si usas redirect:
en el programa del login y password, en caso de que sea correcto pones:

response.redirect("web2.asp?usuario="&rs("nombreUs uario"))
Y en web2.asp pones:

vNomUsuario = request("usuario")
  #3 (permalink)  
Antiguo 01/06/2004, 12:24
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Si usas submit:

En el formulario pones un campo oculto si el login y password son correctos
<input type=hidden name=Usuario value=<%=rs("NomUsuario")%>>

Y en web2.asp pones:
vNomUsuario = request("Usuario")

Saludos
  #4 (permalink)  
Antiguo 01/06/2004, 12:25
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Según veo, no estás mandando esas variables, la forma apunta a control.asp, seguramente en control.asp haces la validación y envias a mostrarfacturas.asp, pero mostrarfacturas.asp no recibe esas variables, las podrías enviar mediante un formulario automático desde control.asp en lugar de redireccionar o podrías validar mediante sesiones, en todo caso pon el código de control.asp para que veamos exactamente que haces....

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 01/06/2004, 12:38
 
Fecha de Ingreso: mayo-2004
Mensajes: 40
Antigüedad: 21 años
Puntos: 0
el código de control.asp es:

<%
Set Cn = Server.CreateObject("ADODB.Command")
Cn.ActiveConnection="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("..\gestionplus1.mdb") & ";"
Cn.CommandType = 1
Cn.CommandText = "SELECT * FROM CLIENTES WHERE LOGIN_CLIENTE ='"&request.form("usuario") & "' AND PASSWORD_CLIENTE ='"&request.form("contrasena") & "'"
Set Rs = Cn.Execute
If not Rs.EOF Then
Response.Redirect ("mostrarfacturas.asp"
Else
Response.Redirect "error.html"
End If
%>

------

me han dicho q ponga --> response.redirect("web2.asp?usuario="&rs("nombreUs uario")) en el redirect, pero aun no lo he provado.
  #6 (permalink)  
Antiguo 01/06/2004, 12:44
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Si, esa es una manera, pero no se que nivel de seguridad quieras, como que no es para nada "seguro" pasar por url los datos...a lo mejor con sesiones.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 01/06/2004, 13:17
 
Fecha de Ingreso: mayo-2004
Mensajes: 40
Antigüedad: 21 años
Puntos: 0
la seguridad me da igual. n es importante. y me gustaria hacerlo de la forma más sencilla.

¿que es eso de pasar datos por url?

¿alguien me puede poner un ejemplo?
  #8 (permalink)  
Antiguo 01/06/2004, 13:31
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 87
Antigüedad: 22 años, 4 meses
Puntos: 0
Lo mas simple para quienes se manejan un poco es manejar las variables en una cookie, para hacerlo tendrias que agregar en tu codigo:

<%
Set Cn = Server.CreateObject("ADODB.Command")
Cn.ActiveConnection="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("..\gestionplus1.mdb") & ";"
Cn.CommandType = 1
Cn.CommandText = "SELECT * FROM CLIENTES WHERE LOGIN_CLIENTE ='"&request.form("usuario") & "' AND PASSWORD_CLIENTE ='"&request.form("contrasena") & "'"
Set Rs = Cn.Execute
If not Rs.EOF Then

'aqui se crea la cookie
Response.Cookies("cliente")("login") = Rs("LOGIN_CLIENTE")
Response.Cookies("cliente")("password") = Rs("PASSWORD_CLIENTE")
Response.Cookies("cliente").Expires = Now() + 1


Response.Redirect ("mostrarfacturas.asp")
Else
Response.Redirect "error.html"
End If
%>

La cookie que se crea almacena diversos parametros. Para escribir los parametros en otras paginas lo haces con <%=Request.Cookies("cliente")("login")%>, la contraseña no creo que quieras mostrarla, pero si quisieras ocuparla en otra consulta la recuperas igual: Request.Cookies("cliente")("password") y .Expires es para que la cookie expire despues 1 dia despues de haberse creado.

Lo unico malo o detalle de usar cookies es que si el cliente tiene la opcion deshabilitada la cosa no funciona... pero podrias agregar un If para que verifique si las cookies estan activadas y si no lo estan podrias crearle una session... bueno, espero que te sirva...
__________________
Gigio

Última edición por gigio_wt; 01/06/2004 a las 13:33
  #9 (permalink)  
Antiguo 01/06/2004, 13:34
 
Fecha de Ingreso: mayo-2004
Mensajes: 40
Antigüedad: 21 años
Puntos: 0
muchas gracias. ahora mismo voy a probarlo...
:D :D :D
  #10 (permalink)  
Antiguo 01/06/2004, 13:51
 
Fecha de Ingreso: mayo-2004
Mensajes: 40
Antigüedad: 21 años
Puntos: 0
gracias gigio. me he funcionado. q wai... de novato pasare a experto.. jajaja...

una pregunta... eso de las cookies se puede utilizar en una query?

ejemplo...
"select codigo_factura from facturas where nombre_cliente = <%=Request.Cookies("cliente")("nombre_cli")%>"

podria funcionar algo parecido a lo que e escrito?

graciiiiiiiiiiiiiiiiiiiiiiiias
  #11 (permalink)  
Antiguo 01/06/2004, 14:03
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
pruebalo y lo sabras

saludos
  #12 (permalink)  
Antiguo 01/06/2004, 14:21
 
Fecha de Ingreso: mayo-2004
Mensajes: 40
Antigüedad: 21 años
Puntos: 0
bien, me he aventurado yo solito con....

Cn.CommandText = "SELECT * FROM FACTURAS WHERE CODIGO_CLIENTE ='"&Request.Cookies("cliente")("codigo_cli") & "' AND SI_NO = '0'"

Set Rs = Cn.Execute

y parece estar bien. lo que me ha petado es ... ---> Set Rs = Cn.Execute

con el error...

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de datos en la expresión de criterios.

xq?¿ :_( :_( :_(
  #13 (permalink)  
Antiguo 01/06/2004, 14:22
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 87
Antigüedad: 22 años, 4 meses
Puntos: 0
si pero de la siguiente forma:

"select codigo_factura from facturas where nombre_cliente = '" & Request.Cookies("cliente")("nombre_cli") & "';"

la comilla simple ( ' ), es porque en la base el campo es de texto, cuando es numerico se usa sin comillas.

que bien que te haya resultado...
__________________
Gigio
  #14 (permalink)  
Antiguo 01/06/2004, 14:28
 
Fecha de Ingreso: mayo-2004
Mensajes: 40
Antigüedad: 21 años
Puntos: 0
muchas gracias gigio. todo perfecto!!!!
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 09:31.