problemas con usuario y contraseña
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>
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>
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ú
Set rsConsulta = Server.CreateObject ("ADODB.RecordSet")
rsConsulta.open "SELECT * FROM Acceso WHERE login='"& usuario &"'", conexion
Hasta Pronto.
Lima - Perú
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
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