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

Ayuda Por Favor!

Estas en el tema de Ayuda Por Favor! en el foro de ASP Clásico en Foros del Web. Amigos necesito mostrar una informacion de la tabla dependiendo de lo q el usuario escribio.... por ejemplo que al colocar la contraseña y darle entrar, ...
  #1 (permalink)  
Antiguo 27/12/2004, 14:09
Avatar de UrRuX  
Fecha de Ingreso: octubre-2004
Ubicación: Maracaibo, Venezuela
Mensajes: 251
Antigüedad: 20 años, 6 meses
Puntos: 0
Sonrisa Ayuda Por Favor!

Amigos necesito mostrar una informacion de la tabla dependiendo de lo q el usuario escribio.... por ejemplo que al colocar la contraseña y darle entrar, en la siguiente pagina me muestre su nombre...EJEMPLO:
Tabla MEMBERS
nombre clave
Jose 12345
Juan 67890
-----------------------------------
Ingrese clave: 123456

Bienvenido "Jose"

Ayuda por FAVOR !! necesito el codigo completo para hacerlo... Lo estoy haciendo en Dreamweaver con paginas ASP y una base de datas en ACCESS !!
  #2 (permalink)  
Antiguo 25/01/2005, 13:02
Avatar de ludovico2000  
Fecha de Ingreso: noviembre-2003
Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 21 años, 5 meses
Puntos: 2
Esto es exactamente lo que pides, además, utiliza una base de datos con tres tablas, una para guardar los accesos "buenos" otra para los "malos" (intentos o errores de los usuarios) y otra para ir poniendo los usuarios. (Descripción de la base de datos en notas, al final).

Además, incluye la función "zorionak" (Felicidades en euskera) para lanzar un pop-up si es el cumpleaños del usuario. ("urtebete" [cumpleaños] es el campo de la tabla usuarios donde va la fecha dd/mm sin año, claro), usando una cadena u otra "zorion" ó "nozorion". Esto es muy vistoso y agradecido por los usuarios.

Combina todo esto con www.ip2location.com/free.asp que permite ver la localización (90% exacto) de la IP, y tendrás una página de acceso muy guay y bien controlada. (restringido a 20 consultas por día por IP)

[Ver notas al final]


[acceso.asp]:

<%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
zorion="<script language=JavaScript>function zorionak(){window.open('zorionak.htm','','top=100, left=100,width=415,height=294,scrollbars=No,locati on=No,menubar=No,resizable=no,status=No,directorie s=No,toolbar=No,copyhistory=No')}</script><body onload='zorionak()' bgcolor='#CCFFFF'>"

nozorion="<body bgcolor='#CCFFFF'>"


Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../data/TABLA.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)

IF RS("URTEBETE")=date() then

Response.write "<html>...<head>" & zorion & "<table ...>Bienvenido: " & rs("nombre") & "</font>...</html>"

else

Response.write "<html>...<head>" & nozorion & "<table ...>Bienvenido: " & rs("nombre") & "</font>...</html>"

end if

end if

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

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

end if%>

NOTAS:


[entrada.htm]:

<html>
...
<form method="POST" action="acceso.asp">
...
<input type="text" name="usuario" size="20"></td>
...
<input type="password" name="password" size="20">
...
<input type="submit" value="Aceptar" name="B1">
...
</form>
...
</html>


[BASE DE DATOS]:

TABLA.mdb
---->usuarios (tabla) [Aquí es donde vas poniendo los usuario a mano]
-------->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)

Yo guardo una copia de esta base de datos en el disco duro, donde voy copiando los accesos y badaccesos y dejo la "original" vacía y la vuelvo a subir, para evitar que se vaya "inflando" y ralentice el asunto. Para ello, también es aconsejable, antes de guardar, en access: Herramientas -> Utilidades de la Base de Datos -> Compactar y Reparar Base de datos. Esto evita que access guarde información "fantasma" y reajusta el tamaño al mínimo justo y necesario.

[A TENER EN CUENTA]:

El response.write genera el código de la página restringida. Ten en cuenta que dentro de ese código no puedes usar comillas dobles ["], pero sí simple ['] y también el código ASCII de la comilla, que es chr(34) y lo tienes que poner así:

Response.write "...código html hasta la comilla" & chr(34) & "código html después de la comilla..."

Verás que yo lo he definido como "com", para abreviar, y poner sólo " & com & "


[zorionak.htm]:

una paginita con algo vistoso, hombre, no seas rancio , pero ten en cuenta los tamaños y posición con que se abre, que los marco en la variable "zorion", y pon los que te vengan bien a tí.

p.s.: ¿esto es una FAQ o un manual?
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 08:38.