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

Redireccionar Login- Ayuda Urgente

Estas en el tema de Redireccionar Login- Ayuda Urgente en el foro de ASP Clásico en Foros del Web. Hola Amigossssss. NECESITO POR FAVOR AYUDA URGENTEMENTE.GRACIAS DE ANTEMANO. Partiendo del código que les pongo a continuación quiero que dependiendo del Tipo de usuario, éste ...
  #1 (permalink)  
Antiguo 31/05/2006, 08:57
 
Fecha de Ingreso: mayo-2006
Mensajes: 14
Antigüedad: 18 años, 11 meses
Puntos: 0
De acuerdo Redireccionar Login- Ayuda Urgente

Hola Amigossssss. NECESITO POR FAVOR AYUDA URGENTEMENTE.GRACIAS DE ANTEMANO.

Partiendo del código que les pongo a continuación quiero que dependiendo del Tipo de usuario, éste acceda a una pagina específica.

En la tabla de access TABLAUSUARIOS tengo los usuarios : usuario1,usuariopreferente,administrador.

CODIGOOOOOOOOOOOOOO

<%
Dim usuario, password, oConn, RS

If Request.Form("usuario") = "" OR Request.Form("password") = "" then
Response.Redirect "pagina1.asp"
Else

usuario = Trim(Request.Form("usuario"))
password = Trim(Request.Form("password"))
usuario = Replace(usuario,"'","''")
password = Replace(password,"'","''")

Set oConn = Server.CreateObject ("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("./basedatos.mdb")

sql = "SELECT * FROM tablausuarios WHERE usuario = '"& usuario &"'"
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open sql, oConn

If (RS.EOF = true) then
Response.Write "Ese usuario no existe"
ElseIf RS.Fields("password") = password then 'Si el campo de la tabla es igual a nuestra variable, estas logueado.
Response.Write "Te logueaste con exito... Bienvenido <B>"& usuario &"</B>"

Else
Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If

RS.Close
oConn.Close
Set RS = Nothing
Set oConn = Nothing
End If
%>
  #2 (permalink)  
Antiguo 31/05/2006, 09:30
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 7 meses
Puntos: 18
Cita:
Iniciado por alesoy
<%
Dim usuario, password, oConn, RS

If Request.Form("usuario") = "" OR Request.Form("password") = "" then
Response.Redirect "pagina1.asp"
Else

usuario = Trim(Request.Form("usuario"))
password = Trim(Request.Form("password"))
usuario = Replace(usuario,"'","''")
password = Replace(password,"'","''")

Set oConn = Server.CreateObject ("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("./basedatos.mdb")

sql = "SELECT * FROM tablausuarios WHERE usuario = '"& usuario &"'"
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open sql, oConn

If (RS.EOF = true) and RS.Fields("password") = password then
select case rs("access")
case "usuario1"
response.redirect.....
.
.
.
end select

Else
Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If

RS.Close
oConn.Close
Set RS = Nothing
Set oConn = Nothing
End If
%>
no te conviene en un sistema de login especificar cuando el usuario existe o cuando es la contraseña la que está mal. Mejor un "datos incorrectos..."
  #3 (permalink)  
Antiguo 31/05/2006, 19:25
 
Fecha de Ingreso: mayo-2006
Mensajes: 14
Antigüedad: 18 años, 11 meses
Puntos: 0
trasgukabi MUCHAS GRACIAS POR RESPONDERME. TE PEDIRIA A VER SI ME PODRIAS SEGUIR AYUDANDOME PLEASEEEEEEEEEEEE o otra persona que se encuentre por aqui por el foro. GRACIAS DE ANTEMANO DESDE CANARIAS.

Ahora al intentar validar con cualquier usuario siempre me sale el mensaje "Esa contraseña no concuerda con el usuario ingresado"

¿QUIZÁS EL PROBLEMA ESTÁ EN LA VARIABLE "ACCESS" QUE YO HE CAMBIADO?, ¿HACE FALTA DECLARAR LA VARIABLE "ACCESS"?

Te pasooooooo mi cógido modificado :

If (RS.EOF = true) and RS.Fields("password") = password then
select case rs("usuario")
case "usuario1"
Response.Redirect("usuario.asp")
case "admin"
Response.Redirect("admin.asp")
end select
Else
Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If
  #4 (permalink)  
Antiguo 01/06/2006, 01:22
 
Fecha de Ingreso: mayo-2006
Ubicación: Bilbo
Mensajes: 76
Antigüedad: 18 años, 11 meses
Puntos: 0
Has comprobado que lo que te devuelve de la base de datos es correcto?
segun tu codigo parece q te falla el if en alguna de sus dos condiciones.
Yo prondria un response.write(RS.fields("password") para comprobar que tiene ese campo y si es igual a password.
Si ves que las dos condiciones estan bien pon un trim a la hora de comprobar el password, asi:
If (RS.EOF = true) and trim(RS.Fields("password")) = password then
Esto lo que hace es quitar los espacios en blanco que te pueda devolver de la base de datos junto con el campo password. Igual lo que te pasa es q te esta devolviendo espacios y al comprobarlo con el valor de password te dice q no es lo mismo...
  #5 (permalink)  
Antiguo 01/06/2006, 03:08
 
Fecha de Ingreso: abril-2006
Ubicación: Bizkaia
Mensajes: 70
Antigüedad: 19 años
Puntos: 0
Aupa alesoy. Comprueba tb las mayusculas y las minusculas. muchas veces se nos cuelan cosas de esas. Prueba con la siguiente funcion:



If (RS.EOF = true) and RS.Fields("password") = password then
select case lcase(rs("usuario"))
case "usuario1"
Response.Redirect("usuario.asp")
case "admin"
Response.Redirect("admin.asp")
end select
Else
Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If


haber ahora, pruebalo y nos comentas.
  #6 (permalink)  
Antiguo 01/06/2006, 04:07
 
Fecha de Ingreso: mayo-2006
Mensajes: 14
Antigüedad: 18 años, 11 meses
Puntos: 0
colega GauTxori GRACIAS POR LA AYUDA, pero es q poniendo el código que me dices me sigue dando como resultado : "Esa contraseña no concuerda con el usuario ingresado"

es decir parece q hay problemas de validación y de redirección. ME PODRÍAS SEGUIR AYUDANDO PLEASE. o ¿conoces otra manera sencilla de redireccionar a páginas dependiendo del usuario que se valide en el sistema??

Gracias desde Canarias.Esto del ASP me tiene locorrrrrrrrrrrrrrrrr
  #7 (permalink)  
Antiguo 01/06/2006, 05:37
 
Fecha de Ingreso: abril-2006
Ubicación: Bizkaia
Mensajes: 70
Antigüedad: 19 años
Puntos: 0
Lo que yo he entendido de tu tabla usuarios que tienes 2 campos llamados usuario y password, entre otros. Yo a la hora de hacer la select, en la where añadiria tb la restriccion del password.
Código:
sql = "SELECT * FROM tablausuarios WHERE usuario = '"& usuario &"'"
sql = sql & " and password = '" &password & "'"
'Ejecutar la select!!!
Luego una vez que tenemos validado el usuario haria la comprobacion del tipo de usuario. He entendido que el nombre del usuario es tb el tipo de usuario que quieres para redireccionar la pagina

Código:
if not rs.eof then
select case rs("usuario")
case "usuario1" Response.Redirect("usuario.asp") case "admin" Response.Redirect("admin.asp")
end select
else Response.Write "Esa contraseña no concuerda con el usuario ingresado" end if
te cambiado un poco de codigo, pero la mayoria es =. Si te sigue pasando a la seccion "Esa contraseña no concuerda con el usuario ingresado" puede que no tengas los datos en la bbdd. Si no pon la estructura de la base de datos, los campos que tiene
  #8 (permalink)  
Antiguo 01/06/2006, 06:05
 
Fecha de Ingreso: mayo-2006
Mensajes: 14
Antigüedad: 18 años, 11 meses
Puntos: 0
GauTxori GRACIASSSSSSS COLEGAAAAAAAAA, POR FIN ME HA SALIDO BIENNNNNNNNNNNNNNNN (perdón por las mayúsculas jejejejejeje pero es la euforia jejejejeejee)

desde Canarias Gracias para ti y esa linda tierra vasca!!!!!
  #9 (permalink)  
Antiguo 01/06/2006, 06:23
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 7 meses
Puntos: 18
Sí. la cosa era
Código:
If not RS.EOF and RS("password") = password then
select case rs("access")
case "usuario1"
response.redirect.....
.
.
.
end select
Else
Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If
lo siento, no me di cuenta
  #10 (permalink)  
Antiguo 01/06/2006, 07:17
 
Fecha de Ingreso: mayo-2006
Mensajes: 14
Antigüedad: 18 años, 11 meses
Puntos: 0
trasgukabi, tranquiiiiii colega, nadie es perfecto. GRACIAS.
  #11 (permalink)  
Antiguo 01/06/2006, 08:07
 
Fecha de Ingreso: mayo-2006
Mensajes: 14
Antigüedad: 18 años, 11 meses
Puntos: 0
COLEGASSSSSS aquí va otra preguntilla a ver si me lo podéis solucionar PLEASEEEEEEEEEEEEE. GRACIAS POR ADELANTADO DE UN CANARIO.

En una página ASP tengo un Formulario que contiene un SELECT que toma como valores los registros que hay dentro de una tabla llamada PAISES.

Pues bien, lo q quiero hacer es q una vez el usuario seleccione uno de esos valores (España, Francia, Italia) se introduzcan como datos en un registro de otra tabla llamada DATOS q contiene el Campo DATOSPAIS.

Espero haberme explicado bien. A continuación les paso el código que tengo en mi página.

----
<form name=formulario>
PAÍS: <select name=idPais >
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("basedatos.mdb"))

SQL_pais="select * from paises order by pais asc"
set RS_pais=createobject("ADODB.Recordset")
RS_pais.open SQL_pais,conn
do while not RS_pais.eof
pais = RS_pais("pais")
idPais = RS_pais("idPais")
p = request.querystring("pais")
if p <> "" then

if p = pais then
response.write "<option value="&idPais&"&pais="&pais&" selected>"&pais&"</option>"
elseif p <> pais then
response.write "<option value="&idPais&"&pais="&pais&">"&pais&"</option>"
end if
else
response.write "<option value="&idPais&"&pais="&pais&">"&pais&"</option>"
end if

RS_pais.movenext
loop
RS_pais.close
%>
</select>
</form>
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 19:29.