Problema al conectar base de datos para autenticar

12/12/2004 - 08:55 por DeimoXXX | Informe spam
Hola a todos:

Me pasa una cosa curiosa. Estoy intentando crear una página para autenticar
usuarios.
Sin embargo, me está dando un error en la conexión a la base de datos. Lo
mas extraño
es que el código que utilizo para la conexión, es el mismo que utilizo en
otra página para
extraer otros datos de otra tabla. Pero en este caso me da error. ¿a que
puede deberse? :o

Este es el código:

<%
'Para los redireccionamientos
Response.Buffer=True

Dim con, rs, sSQL, nombre, password

'Recogemos el formulario
nombre=Trim( Request.Form("Nombre") )
password=Trim ( Request.Form("Password") )

'Si no lo ha enviado, es decir no hay nada en estas variables
'le presentamos el formulario

if nombre="" then
MostrarFormulario
else

'Validamos su identidad
set con=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Inetpub\wwwroot\mibasededatos.mdb"
sSQL="SELECT Id_usuario, login, password FROM users WHERE
(Login='"&nombre&"' AND Password='"&password&"');"

'Ejecutamos consulta

rs.Open sSQL, con

if rs.EOF then

'No existe ese usuario con esa contraseña
'Así que le negamos el acceso
Session("autenticado")=False
Response.Status="401 Prohibido"
else

'Le mandamos a la pagina de bienvenida
Session("autenticado")=True
Response.Redirect("bdd.asp")
end if

end if

rs.Close
set rs=nothing
con.Close
set con=nothing

Sub MostrarFormulario

Response.Write("<FORM METHOD=""post"" ACTION=""login.asp"">")
Response.Write("<INPUT TYPE=""text"" NAME=""Nombre""><BR>")
Response.Write("<INPUT TYPE=""password"" NAME=""Password""><BR>")
Response.Write("Entre su nombre de usuario y contraseña -<INPUT
TYPE=""submit"">")

End Sub 'MostrarFormulario

%>

Y el error es el siguiente:

a.. Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01A8)
Se requiere un objeto: ''
/login.asp, línea 51

La línea 51 es la siguiente:

rs.Close

Gracias por la ayuda.

DeimoXXX
 

Leer las respuestas

#1 DeimoXXX
12/12/2004 - 11:29 | Informe spam
Me contesto yo mismo:

Lo que puede poner un End if mal puesto.

Perdon por las molestias.

Chao.

DeimoXXX



"DeimoXXX" escribió en el mensaje
news:SPSud.4311601$
Hola a todos:

Me pasa una cosa curiosa. Estoy intentando crear una página para


autenticar
usuarios.
Sin embargo, me está dando un error en la conexión a la base de datos. Lo
mas extraño
es que el código que utilizo para la conexión, es el mismo que utilizo en
otra página para
extraer otros datos de otra tabla. Pero en este caso me da error. ¿a que
puede deberse? :o

Este es el código:

<%
'Para los redireccionamientos
Response.Buffer=True

Dim con, rs, sSQL, nombre, password

'Recogemos el formulario
nombre=Trim( Request.Form("Nombre") )
password=Trim ( Request.Form("Password") )

'Si no lo ha enviado, es decir no hay nada en estas variables
'le presentamos el formulario

if nombre="" then
MostrarFormulario
else

'Validamos su identidad
set con=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
con.open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Inetpub\wwwroot\mibasededatos.mdb"
sSQL="SELECT Id_usuario, login, password FROM users WHERE
(Login='"&nombre&"' AND Password='"&password&"');"

'Ejecutamos consulta

rs.Open sSQL, con

if rs.EOF then

'No existe ese usuario con esa contraseña
'Así que le negamos el acceso
Session("autenticado")=False
Response.Status="401 Prohibido"
else

'Le mandamos a la pagina de bienvenida
Session("autenticado")=True
Response.Redirect("bdd.asp")
end if

end if

rs.Close
set rs=nothing
con.Close
set con=nothing

Sub MostrarFormulario

Response.Write("<FORM METHOD=""post"" ACTION=""login.asp"">")
Response.Write("<INPUT TYPE=""text"" NAME=""Nombre""><BR>")
Response.Write("<INPUT TYPE=""password"" NAME=""Password""><BR>")
Response.Write("Entre su nombre de usuario y contraseña -<INPUT
TYPE=""submit"">")

End Sub 'MostrarFormulario

%>

Y el error es el siguiente:

a.. Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01A8)
Se requiere un objeto: ''
/login.asp, línea 51

La línea 51 es la siguiente:

rs.Close

Gracias por la ayuda.

DeimoXXX




Preguntas similares