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

Validación con tabla de usuarios

Estas en el tema de Validación con tabla de usuarios en el foro de ASP Clásico en Foros del Web. Una vez más tengo una duda q creo q es facil de resolver, pero esq soy muy novato en ASP Hago un consulta de los ...
  #1 (permalink)  
Antiguo 09/07/2007, 11:05
 
Fecha de Ingreso: junio-2007
Mensajes: 10
Antigüedad: 17 años
Puntos: 0
Validación con tabla de usuarios

Una vez más tengo una duda q creo q es facil de resolver, pero esq soy muy novato en ASP

Hago un consulta de los usuarios de mi base de datos.

Código:
ssql1="SELECT * FROM Usuarios ORDER BY login"
set consulta1 = conexion.execute(ssql1)
Luego, he de ver si alguno de los usuarios tiene el login y la contraseña q se han introducido en la pagina de validación (txt_usuario y txt_login)

Código:
Do While not consulta1.eof

	 if consulta1("login") = request.form("txt_usuario") then
		if consulta1("contraseña") = request.form("txt_password") then
		 	validado = true
		end if
	end if

consulta1.movenext 
Loop

if validado = true then
	response.Write("validado")
else
	response.write("no validado")
end if
El problema esq introduzco bien el login y la contraseña, tal y como existen en la base de datos. Y siempre me imprime por pantalla "no validado". Y si imprimo ambos me imrpime lo mismo.....

response.write(request.Form("txt_usuario"))
response.write(consulta1("login"))

Estoy bastante confuso. Gracias de antemano.
  #2 (permalink)  
Antiguo 09/07/2007, 11:16
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Validación con tabla de usuarios

Me parece que lo estás haciendo al revés, primero tienes que capturar tus variables login y pwd, y después con ellas armar tu consulta

Código:
usuario =  replace(request.form("txt_usuario"), "'", "''")
pwd = replace(request.form("txt_password"), "'", "''")

ssql1="SELECT * FROM Usuarios WHERE login = '"&usuario&"' AND [contraseña] = '"&pwd&"'"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open ssql1, Conexion, 3, 3

if not rs.EOF then
  'existe el usuario
else
  'no existe
end if
rs.Close()
Set rs = Nothing
Conexion.Close()
Set Conexion = Nothing
Una cosa más, no utilices tildes ni eñes ni nada de esos caracteres para el nombre de los campos de tu base de datos.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 09/07/2007, 11:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Validación con tabla de usuarios

Mejor haz algo como esto:
Código:
consulta1.Open "Select * from TuTabla Where login = '" & request.form("txt_usuario") & "' and [Contraseña] = '" & request.form("txt_password") & "'", objConexion

If Consulta1.EOF Then
   Response.Write "Usuario y/o contraseña no existen"
Else
   Response.Write "Usuario autorizado"
Por cierto, no deberías tener nombres de campos con Ñ's, pudieras tener problemas.
  #4 (permalink)  
Antiguo 09/07/2007, 11:18
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Validación con tabla de usuarios

bah!!

Este U_G siempre de "caza goles"
  #5 (permalink)  
Antiguo 09/07/2007, 11:19
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Validación con tabla de usuarios

Cita:
Iniciado por Myakire Ver Mensaje
bah!!

Este U_G siempre de "caza goles"
Demonios!!! casi al mismo tiempo, pero a que rompo tu consulta sin ser usuario registrado nah...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 09/07/2007, 11:20
 
Fecha de Ingreso: junio-2007
Mensajes: 10
Antigüedad: 17 años
Puntos: 0
Re: Validación con tabla de usuarios

Muchas gracias, ya lo tengo claro. Cambiaré el nombre del campo contraseña por si acaso

Tenia cierta logica como lo queria hacer yo, pero si q parece mas logico realizar "la busqueda" en una consulta.

Gracias
  #7 (permalink)  
Antiguo 09/07/2007, 11:21
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: Validación con tabla de usuarios

Cita:
Iniciado por Udrow Ver Mensaje
Muchas gracias, ya lo tengo claro. Cambiaré el nombre del campo contraseña por si acaso

Tenia cierta logica como lo queria hacer yo, pero si q parece mas logico realizar "la busqueda" en una consulta.

Gracias
Lo que pasa es que querías traer todo el recordset, iterarlo y ver si había alguna coincidencia, lo cuál es correcto en cuanto al resultado, pero no tan eficiente.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 09/07/2007, 11:29
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Validación con tabla de usuarios

Cita:
Iniciado por u_goldman Ver Mensaje
Demonios!!! casi al mismo tiempo, pero a que rompo tu consulta sin ser usuario registrado nah...
jejejeje, pues si, pero el SQL Injection para cuando ya caminas, no cuando estas gateando, bueno, igual no esta de más mencionarlo.

U_G hizo ese comentario por que si alguien ingresa un usuario como esto: ' or true --, en mi consulta quedaría algo como esto:
Select * from TuTabla Where login = '' or true -- and [Contraseña] = 'cualquier cosa', y si tienes SQL Server, el -- se toma como comentario de linea, es decir que ya no se evaluaría, esto hace que la condición OR TRUE haga que cualquier usuario ingrese al sistema, por eso él los cambio antes de hacer la concatenación.

En el foro hay muchos temas sobre el SQL Injection y verás que es algo mucho más peligroso que solo entrar a una página, pueden borrarte información de la BD, incluso.

Saludos
  #9 (permalink)  
Antiguo 09/07/2007, 11:58
 
Fecha de Ingreso: junio-2007
Mensajes: 10
Antigüedad: 17 años
Puntos: 0
Re: Validación con tabla de usuarios

Cierto, como lo queria hacer yo es mucho mas ineficiente, y como me habeis dicho vosotros solo me llevo una tupla o ninguna, es mucho mejor.

Ya me rula perfecto. Muchas gracias
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 12:44.