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

error raro en sistema de validacion

Estas en el tema de error raro en sistema de validacion en el foro de ASP Clásico en Foros del Web. buenas tardes chicos no entiendo porque me tira este error, a ver si alguien me puedo ayudar en mi sistema de validacion de usuario, <% ...
  #1 (permalink)  
Antiguo 26/10/2004, 16:22
Avatar de jUaN_  
Fecha de Ingreso: septiembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 220
Antigüedad: 21 años, 9 meses
Puntos: 0
error raro en sistema de validacion

buenas tardes chicos


no entiendo porque me tira este error, a ver si alguien me puedo ayudar en mi sistema de validacion de usuario,


<%
Dim usuario, password, oConn, RS
'Primero nos fijamos si ambos campos fueron completados.
'Si no se cumple, redireccionamos a pagina1.asp
If Request.Form("usuario") = "" OR Request.Form("password") = "" then
Response.Redirect "default.asp"
Else
'Guardamos los datos del Form en variables y evitamos la comilla simple
usuario = Trim(Request.Form("usuario"))
password = Trim(Request.Form("password"))
usuario = Replace(usuario,"'","''")
password = Replace(password,"'","''")

'Conectamos a nuestra BD.
Set oConn = Server.CreateObject ("ADODB.Connection")
oConn.Open "DRIVER={SQL Server}; SERVER=ssatysql1; DATABASE=foro; UID=foro; PWD=foro"

'Seleccionamos de la tabla solo los registros que concuerden con el usuario del Form.
sql = "SELECT * FROM Userpass WHERE usuario = '"& usuario &"'"
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open sql, oConn

'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el usuario.
If (RS.EOF = true) then
Response.Write "Ese usuario no posee permisos para ingresar al sistema"

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 'Otra cosa, seria cuando el password no es la que seleccionamos.
Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If
session("autentificado") = "si"
'Limpiamos y cerramos.
RS.Close
oConn.Close
Set RS = Nothing
Set oConn = Nothing
End If
%>


con esto me ingresa sin problemas

pero si cambio en lo que arrba esta en azul por esto:

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>"
Response.Redirect("admin.asp")


me vuelve denuevo al logueo sin tomarme el password, porque en el admin.asp

<%
Response.Buffer = true
' compruebo que tengo la variable de sesion creada y con el dato correcto
if session("autentificado") <> "si" then
response.redirect "default.asp"
response.end
end if
%>


para ver si se validaron los users

alguien sabe porque pasa esto?
__________________
<% Viru %>

Última edición por jUaN_; 26/10/2004 a las 16:29
  #2 (permalink)  
Antiguo 26/10/2004, 16:59
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Código:
If (RS.EOF = true) then
  Response.Write "Ese usuario no posee permisos para ingresar al sistema"
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 'Otra cosa, seria cuando el password no es la que seleccionamos.
  Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If
Tienes un error de lógica...este es un If anidado, que funciona como un case

Select case variable
case 1
case 2
End Select

Es decir, evalúas el estátus de una sola cosa

Si es Fin de archivo(EOF)

Si no

Fin Si

No puedes hacer esto:

Si es Fin de archivo

Si NO Si variable = "valor"

Si no

Se entiende?

Saca ese ElseIf del If y evalúala dentro del Else primario:

Código:
If RS.EOF then
  Response.Write "Ese usuario no posee permisos para ingresar al sistema"
  Else 
  'Otra cosa, seria cuando el password no es la que seleccionamos.
  If 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
End If

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 15:37.