Ver Mensaje Individual
  #28 (permalink)  
Antiguo 12/07/2002, 11:22
Avatar de epa2
epa2
 
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
Re: pagina asp con usuarios y claves


Bueno bueno, ya era hora de que el novato aportara algo pa el foro.

Antes que nada, quiero dedicar este post a todos aquellos que me han ayudado a seguir adelante,

a no rendirme y darme su mano en los malos momentos, gracias a epa1 y a Bkanzip por su paciencia
conmigo.

y ahora, despues de esto vamos al grano, je je je.

construimos una BD en access con los campos usuario, password y curso. a la tabla la he llamado
USUARIOS y la BD XXXX

hacemos una página asp llamada login.asp
' este codigo es producto de epa1 epa2 y bkanzip, usarlo libremente pero recordar siempre que recibisteis gratis dad gratis
<head>
<title>USUARIO</title>
<%if request.form("usuario")="" then%>
<form method="POST" action="login.asp">
<p> </p>
<p> </p>
<p> </p>
<p align="center"><%=request.querystr ing("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")
'abrimos la conexion y le decimos el directorio de nuestra BD y el nombre de la BD
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\BD\XXXX.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
SQL2="SELECT curso FROM usuarios WHERE usuario='"&usuario&"' AND password='"&password&"'"
set rs=Conn.execute(SQL2)
end if
if not rs.eof and not rs.bof then
' creamos la sesion con el nombre curso y le damos el valor que se encuentre dentro del campo curso de la tabla en la BD.

session("curso")=rs("curso")
session("autorizacion")=1
response.redirect "pagina_protegida.asp"
end if
else
autorizacion =-1

end if
rs.close
set rs=nothing
conn.close
set conn=nothing
if autorizacion=-1 or autorizacion="" then
' no hemos encontrado el registro
' eso indica que el usuario y/o la password son piratillas je je
response.redirect "login.asp?msg=Usuario%20o%20password%20incor rectos"
end if
end if%>
</head>

<body>

</body>

</html>