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

¿Por que no funciona?

Estas en el tema de ¿Por que no funciona? en el foro de ASP Clásico en Foros del Web. Hola, soy nuevo en este mundillo. Tengo el siguiente codigo, pero al ejecutarlo, no me funciona, ¿alguien me puede echar una mano? Muchas gracias. <%if ...
  #1 (permalink)  
Antiguo 19/01/2005, 03:55
 
Fecha de Ingreso: enero-2005
Mensajes: 45
Antigüedad: 19 años, 4 meses
Puntos: 0
¿Por que no funciona?

Hola, soy nuevo en este mundillo. Tengo el siguiente codigo, pero al ejecutarlo, no me funciona, ¿alguien me puede echar una mano?

Muchas gracias.

<%if request.form("usuario")="" then%>
<form method="POST" action="login.asp">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align="center"><%=request.querystring("msg")%></p>
<div align="center">
<center>
<table border="0" width="50%" bgcolor="#F2F2F2">
<tr>
<td width="100%" colspan="2" bgcolor="#0000FF">
<p align="center"><font color="#FFFFFF">Login</font></td>
</tr>
<tr>
<td width="50%">Usuario:</td>
<td width="50%"><input type="text" name="usuario" size="20"></td>
</tr>
<tr>
<td width="50%">Password: </td>
<td width="50%"> <input type="password" name="password" size="20"></td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="center"><input type="submit" value="Enviar" name="B1"></td>
</tr>
</table>
</center>
</div>
</form>


<%else
'eliminamos las posibles comillas de la entrada
'para evitar la introducción de sentencias SQL
usuario=replace(request.form("usuario"),"'","")
password=replace(request.form("password"),"'","")

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("c:\documents and settings\usuario\escritorio\datos.mdb"))
set rs = CreateObject("ADODB.Recordset")
sqltxt="Select * from usuarios where usuario='"&usuario&"' and password= '"&password&"'"
'response.write sqltxt
rs.Open sqltxt, conn
if not rs.eof then
' nos ha devuelto un registro, ahora miraremos si es valido
' con ello evitamos el ataque típico SQL
if rs("usuario")=usuario and rs("password")=password then
' si el usuario esta en la base de datos y la password coincide
session("autorizacion")=1
response.redirect "default.asp"
end if
else
session("autorizacion")=-1

end if
rs.close
set rs=nothing
conn.close
set conn=nothing
if session("autorizacion")=-1 or session("autorizacion")="" then
' no hemos encontrado el registro
' eso indica que el usuario y/o la password son erroneos
response.redirect "login.asp?msg=Usuario%20o%20password%20incorrecta "
end if

end if%>
  #2 (permalink)  
Antiguo 19/01/2005, 05:31
Avatar de ludovico2000  
Fecha de Ingreso: noviembre-2003
Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 20 años, 7 meses
Puntos: 2
Seguramente sea por la ruta de la base de datos, ya que le dices al asp (que está en el servidor) que vaya a tu escritorio a por ella:

Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("c:\documents and settings\usuario\escritorio\datos.mdb"))


cuando debería ser algo así como:

Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../datos/misdatos.mdb"))

espero haberte ayudado

De todas formas, te paso el código que uso yo, para que lo compares:

<%if request.form("usuario")="" then

response.redirect "entrada.htm"

%>

<%else
'eliminamos las posibles comillas de la entrada
'para evitar la introducción de sentencias SQL
usuario=replace(request.form("usuario"),"'","")
password=replace(request.form("password"),"'","")
com=chr(34)
Var_IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if Var_IP = "" then
Var_IP = Request.ServerVariables("REMOTE_ADDR")
end if
Var_IP2 = Request.ServerVariables("REMOTE_HOST")
IF Var_IP2 = "" then
Var_IP2 = Request.ServerVariables("REMOTE_ADDR")
end if
esto lo uso yo para captar las ip de los usuarios, por seguridad

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../datos/misdatos.mdb"))
set rs = CreateObject("ADODB.Recordset")
sqltxt="Select * from usuarios where usuario='"&usuario&"' and password= '"&password&"'"
'response.write sqltxt
rs.Open sqltxt, conn
if not rs.eof then
' nos ha devuelto un registro, ahora miraremos si es valido
' con ello evitamos el ataque típico SQL
if rs("usuario")=usuario and rs("password")=password then
' si el usuario esta en la base de datos y la password coincide
session("autorizacion")=1

Insertar = "INSERT INTO TablaAccesos (ID_Usuario, Fecha_Acceso, IP, IP2) VALUES ('"&usuario&"', '"&Now()&"', '"&Var_IP&"', '"&Var_IP2&"')"

Conn.Execute(Insertar)

Response.write "<html>...."

else

Insertar = "INSERT INTO BadAccesos (Bad_usuario, Bad_fecha, Bad_clave, Bad_IP, Bad_IP2) VALUES ('"&usuario&"', '"&Now()&"', '"&password&"', '"&Var_IP&"', '"&Var_IP2&"')"

Conn.Execute(Insertar)

session("autorizacion")=-1

rs.close
set rs=nothing
conn.close
set conn=nothing
if session("autorizacion")=-1 or session("autorizacion")="" then
' no hemos encontrado el registro
' eso indica que el usuario y/o la password son erroneos



response.redirect "entrada.htm"
end if

end if%>
  #3 (permalink)  
Antiguo 19/01/2005, 15:07
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Es muy posible que el erro radique donde te comentaron, pero de todas maneras, mejor para la proxima pon la linea del error y el error que manda...y lo necesario del codigo para que se pueda detectar el problema.

Es dificil tener que leer 100 lineas para encontrar un error :-p

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 22:28.