problemas con usuario y contraseña

nusky
24 de Marzo del 2003
Hola a todos, necesito ayuda con este código que me da el siguiente error:
Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01A8)
Se requiere un objeto: ''
/Proyectos/WebProyectos/validacion.asp, line 20
La linea 20 es:
rsConsulta.open "SELECT * FROM Acceso WHERE login='"& usuario &"'", conexion
Tengo una pág en la que meto datos en un formulario y con el metodo post pasan a la página que veis el código aqui abajo.
En la base de datos tengo los campos: id, login y password.
Espero que me ayudeis cuanto antes mejor.
Gracias.

CODIGO DE LA PAG:
<html>
<head>
<title>Validacion Acceso Proyectos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body bgcolor="#FFFFFF" text="#000000">
<script>alert("Esto es la primera prueba");</script>
esto es la segunda prueba
<%
Dim conexion, rsConsulta
Set conexion=CreateObject("ADODB.Connection")
sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Proyectos.mdb") & ";" & _
"Persist Security Info=False"
conexion.open (sConnection)

'Seleccionamos de la tabla solo los registros que concuerden con el usuario del Form.
rsConsulta.open "SELECT * FROM Acceso WHERE login='"& usuario &"'", conexion
Set rsConsulta = Server.CreateObject ("ADODB.RecordSet")

Dim usuario, contrasena
'Primero nos fijamos si ambos campos fueron completados.
'Si no se cumple, redireccionamos a pagina1.asp
If (Request.Form("login") = "" OR Request.Form("password") = "") then%>
<script>alert("Los campos del formulario login y password están vacíos");</script>
<% Response.Redirect "ListaProyProp.asp"
Else %>
<script>alert("Introducimos en las variables");</script>
<% 'Guardamos los datos del Form en variables
usuario = Request.Form("login")
contrasena = Request.Form("password")

If (rsConsulta.Fields("login")=request.form("login") and rsConsulta.Fields("password")=request.form("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>"
End If

'Limpiamos y cerramos.
rsConsulta.Close
conexion.Close
Set rsConsulta = Nothing
Set conexion = Nothing
End If
%>

</body>
</html>

Santos Pairazam?
24 de Marzo del 2003
Corrige estas líneas primero debes setear rsconsulta para luego abrir el recorset.

Set rsConsulta = Server.CreateObject ("ADODB.RecordSet")
rsConsulta.open "SELECT * FROM Acceso WHERE login='"& usuario &"'", conexion

Hasta Pronto.
Lima - Perú

nusky
24 de Marzo del 2003
Hola de nuevo!
Gracias por la rectificación de ayer, me ha sido muy útil.
Pero hoy tengo otro problema.
Necesito que cuando introduzcas un usuario y una contraseña que está en la base de datos te vaya a una página y cuando no coincida se quede en la misma.
Me podías ayudar a averiguar por qué no me hace lo que quiero??
El código te lo muestro aqui abajo:

<html>
<head>
<title>Validacion Acceso Proyectos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body bgcolor="#FFFFFF" text="#000000">
<script>alert("Esto es la primera prueba");</script>
esto es la segunda prueba

<%

Dim conexion, rsConsulta
Set conexion=CreateObject("ADODB.Connection")
sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Proyectos.mdb") & ";" & _
"Persist Security Info=False"
conexion.open (sConnection)

'Seleccionamos de la tabla solo los registros que concuerden con el usuario del Form.
Set rsConsulta = Server.CreateObject ("ADODB.RecordSet")
rsConsulta.open "SELECT * FROM Acceso", conexion

Dim usuario, contrasena, existe

If (Request.Form("login") = "" OR Request.Form("password") = "") then%>
<script>alert("Los campos del formulario login y password están vacíos");</script>
<%
Else %>
<script>alert("Introducimos en las variables");</script>
<% 'Guardamos los datos del Form en variables
usuario = Request.Form("login")
contrasena = Request.Form("password")

If (rsConsulta.Fields("login")=usuario and rsConsulta.Fields("password")=contrasena) then 'Si el campo de la tabla es igual a nuestra variable, estas logueado.
existe = true
%><script>alert("Te logueaste con exito");</script>%>
<%Response.Write "Te logueaste con exito... Bienvenido <B>"& usuario &"</B>"
else
existe = false
End If


if existe = true then
response.redirect "formularioProyAltas.asp"
else
response.redirect "ListaProyProp.asp"
end if
'Limpiamos y cerramos.
rsConsulta.Close
conexion.Close
Set rsConsulta = Nothing
Set conexion = Nothing
End If
%>

</body>
</html>

Espero que me podáis ayudar.
Gracias.
Zaragoza-España

nusky
24 de Marzo del 2003
Muchas gracias por tu respuesta tan rápida pero hasta mañana por la mañana no voy a poder comprobarlo. Ya te diré como va.
Gracias!