Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/12/2003, 11:58
Avatar de ludovico2000
ludovico2000
 
Fecha de Ingreso: noviembre-2003
Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 20 años, 5 meses
Puntos: 2
Informe Accesos Buenos Y Malos ¡¡funciona!!

Él código resultante final es el que indico debajo. (Si alguien puede mejorarlo, sugerencias, etc, adelante, por favor!)

Agradecimientos: Dazuaga, Jercer

A tener en cuenta: Crear una base de datos con las tablas y campos necesarios que aparecen en el código:

clientes.mdb
---->usuarios (tabla)
-------->usuario (campo)
-------->password (campo)
-------->nombre (campo)

---->TablaAccesos (tabla)
-------->ID_Usuario (campo)
-------->Fecha_Acceso (campo)
-------->IP (campo)

---->BadAccesos (tabla)
-------->Bad_usuario (campo)
-------->Bad_fecha (campo)
-------->Bad_clave (campo)
-------->Bad_IP (campo)

[CÓDIGO DEL ARCHIVO AL QUE LLAMA EL HTM QUE CONTIENE EL FORMULARIO]


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



<%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"),"'","")
Var_IP = Request.ServerVariables("REMOTE_HOST")


Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../datos/clientes.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) VALUES ('"&usuario &"', '"& Now() &"', '"&Var_IP&"')"

Conn.Execute(Insertar)


Response.write "<body>...<body>"



end if
else

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

Conn.Execute(Insertar)

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 "acceso.htm"
end if

end if%>

Última edición por ludovico2000; 07/07/2005 a las 12:07