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

validación de usuarios

Estas en el tema de validación de usuarios en el foro de ASP Clásico en Foros del Web. Buenos días, otra vez yo, estoy haciendo la validación de usuarios pero no hay forma ni manera de que al menos me de un error, ...
  #1 (permalink)  
Antiguo 14/05/2009, 03:45
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
validación de usuarios

Buenos días, otra vez yo, estoy haciendo la validación de usuarios pero no hay forma ni manera de que al menos me de un error, hasta he cambiado de servidor y sigue el problema, no se que estoy haciendo mal, lo que es cierto es que ya tengo varios días intentándolo y nada, por favor, si alguien puede ver lo que yo no veo lo agradeceré muchisimo.

voy a colocar todo el código incluyendo el fomrlurio, gracias de verdad por la ayuda. Base de datos MySql.

tabla
m_investigadores
txt_usuario
txt_clave
cod_estado_inv (1=activo, 2=inactivo)
...

---------------------------------------------------------------------------------------

Formulario:
<form id="form1" name="form1" method="post" action="validainvestigador.asp">

usuario
<input type="text" name="nombre" id="nombre" />

Clave
<input type="password" name="clave" id="clave" />

<input name="enviar" type="submit" id="enviar" value="Enviar" />

<input name="cancelar" type="reset" id="cancelar" value="Cancelar" />
</form>

-------------------------------------------------------------------------------------------
validainvestigador.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#INCLUDE file="include/conexion.asp"-->
<%response.buffer=true%>

<%
FUNCTION corregirComillas( cadena )
strNuevaCadena = REPLACE( cadena, "'", "''")
strNuevaCadena = REPLACE(strNuevaCadena, "<", "")
strNuevaCadena = REPLACE(strNuevaCadena, ">", "")
strNuevaCadena = REPLACE(strNuevaCadena, "%", "")
strNuevaCadena = REPLACE(strNuevaCadena, "*", "")
strNuevaCadena = REPLACE(strNuevaCadena, "INSERT INTO", "")
strNuevaCadena = REPLACE(strNuevaCadena, "DELETE FROM", "")
strNuevaCadena = REPLACE(strNuevaCadena, "IFRAME", "")
corregirComillas = strNuevaCadena
END FUNCTION
%>

<%
Dim nombre, clave

nombre=trim(Request.Form("nombre"))
clave=trim(Request.Form("clave"))


if nombre="" then
response.redirect("acceso.asp")
else

Set rst=Server.CreateObject("ADODB.Recordset")
Ssql10="select txt_usuario, txt_clave, cod_estado_inv from m_investigadores where (txt_usuario='"&corregirComillas(nombre)&"' and txt_clave='"&corregirComillas(clave)&" and cod_estado_inv=1);"
set rst = conexion.Execute(Ssql10)
if rst.eof then
Response.redirect("error.asp")
else
Session("nombre")=nombre
Response.Redirect("investigadores/index.asp?usuario="&nombre&"")
end if
end if
%>

<%
rst.close
set rst=nothing
conexion.close
set conexion=nothing
%>
  #2 (permalink)  
Antiguo 14/05/2009, 05:19
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: validación de usuarios

Hola

Prueba a pasarle la función cuando recoges los párametros

Código asp:
Ver original
  1. <%
  2. FUNCTION corregirComillas( cadena )
  3. strNuevaCadena = Trim(cadena)
  4. strNuevaCadena = REPLACE( cadena, "'", "''")
  5. strNuevaCadena = REPLACE(strNuevaCadena, "<", "")
  6. strNuevaCadena = REPLACE(strNuevaCadena, ">", "")
  7. strNuevaCadena = REPLACE(strNuevaCadena, "%", "")
  8. strNuevaCadena = REPLACE(strNuevaCadena, "*", "")
  9. strNuevaCadena = REPLACE(strNuevaCadena, "INSERT INTO", "")
  10. strNuevaCadena = REPLACE(strNuevaCadena, "DELETE FROM", "")
  11. strNuevaCadena = REPLACE(strNuevaCadena, "IFRAME", "")
  12. corregirComillas = strNuevaCadena
  13. END FUNCTION
  14. %>
  15.  
  16. <%
  17. Dim nombre, clave
  18.  
  19. nombre=corregirComillas(Request.Form("nombre"))
  20. clave=corregirComillas(Request.Form("clave"))
  21.  
  22. Ssql10="select txt_usuario, txt_clave, cod_estado_inv from m_investigadores where (txt_usuario='"&nombre&"' and txt_clave='"&clave&" and cod_estado_inv=1);"

Por otro lado el filtrado se podría mejorar

Código asp:
Ver original
  1. str = lcase(str)
  2.         str = replace(str,"  "," ")
  3.         str = replace(str,"=","")
  4.         str = replace(str,"'","")
  5.         str = replace(str,"""""","")
  6.         str = replace(str," or ","")
  7.         str = replace(str," and ","")
  8.         str = replace(str,"(","")
  9.         str = replace(str,")","")
  10.         str = replace(str,"<","[")
  11.         str = replace(str,">","]")
  12.         str = replace(str,"having ","")
  13.         str = replace(str,"group by","")
  14.         str = replace(str,"union select sum","")
  15.         str = replace(str,"union select min","")
  16.         str = replace(str,"--","")
  17.         str = replace(str,"select ","")
  18.         str = replace(str,"insert ","")
  19.         str = replace(str,"update ","")
  20.         str = replace(str,"delete ","")
  21.         str = replace(str,"drop ","")
  22.         str = replace(str,"-shutdown","")

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 14/05/2009, 11:46
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: validación de usuarios

Gracias Adler por constante ayuda, tu dices algo así:

<%
FUNCTION corregirComillas( cadena )
strNuevaCadena = REPLACE( cadena, "'", "''")
strNuevaCadena = REPLACE(strNuevaCadena, "<", "")
strNuevaCadena = REPLACE(strNuevaCadena, ">", "")
strNuevaCadena = REPLACE(strNuevaCadena, "%", "")
strNuevaCadena = REPLACE(strNuevaCadena, "*", "")
strNuevaCadena = REPLACE(strNuevaCadena, "INSERT INTO", "")
strNuevaCadena = REPLACE(strNuevaCadena, "DELETE FROM", "")
strNuevaCadena = REPLACE(strNuevaCadena, "IFRAME", "")
strNuevaCadena = REPLACE(strNuevaCadena, "=","")
strNuevaCadena = REPLACE(strNuevaCadena," or ","")
strNuevaCadena = REPLACE(strNuevaCadena," and ","")
strNuevaCadena = REPLACE(strNuevaCadena,")","")
strNuevaCadena = REPLACE(strNuevaCadena,"(","")
strNuevaCadena = REPLACE(strNuevaCadena,"having ","")
strNuevaCadena = REPLACE(strNuevaCadena,"group by","")
strNuevaCadena = REPLACE(strNuevaCadena,"union select sum","")
strNuevaCadena = REPLACE(strNuevaCadena,"union select min","")
strNuevaCadena = REPLACE(strNuevaCadena,"--","")
strNuevaCadena = REPLACE(strNuevaCadena,"select ","")
strNuevaCadena = REPLACE(strNuevaCadena,"insert ","")
strNuevaCadena = REPLACE(strNuevaCadena,"update ","")
strNuevaCadena = REPLACE(strNuevaCadena,"drop ","")
strNuevaCadena = REPLACE(strNuevaCadena,"-shutdown","")
corregirComillas = strNuevaCadena
END FUNCTION
%>
  #4 (permalink)  
Antiguo 14/05/2009, 13:58
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: validación de usuarios

Hola

Sí, solo te ha faltado el Trim y poner la cadena en mayúsculas o minúsculas

Código asp:
Ver original
  1. FUNCTION corregirComillas( cadena )
  2. strNuevaCadena = trim(cadena)
  3. strNuevaCadena = lcase(strNuevaCadena)
  4. .....

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 15/05/2009, 06:00
 
Fecha de Ingreso: mayo-2009
Mensajes: 40
Antigüedad: 16 años
Puntos: 0
Respuesta: validación de usuarios

yo tengo una muy sencilla que quizas te sirva

---------------------------------------
formulario html:
---------------------------------------
<form method="post" action="password.asp">
<p>USUARIO<BR>
<input type="text" name="USU">
<br>
<br>
CONTRASE&Ntilde;A<br>
<input type="password" name="CON">
<br>
<br>

<input type="submit" value="Entrar">
<input type="reset" value="Limpiar">
</p>
-------------------------------------------------
codigo asp-------------->password.asp
-------------------------------------------------

<%
usuario1=request.form("USU")
clave1=request.form("CON")

set conexion=server.createobject("ADODB.connection")
basedatos="DRIVER=Microsoft Access Driver (*.mdb);DBQ="&Server.MapPath("/Db/*.mdb")
conexion.open basedatos
sql="select * from usuarios where usuario='"&usuario1&"'and clave='"&clave1&"';"
set tabla=conexion.execute(sql)

if(tabla.EOF) then
%>
<script language="JavaScript">
window.alert("Tu Contraseña es Errónea")
history.back(-1)
</script>

<%else%>

<script language="JavaScript">
window.alert("Tu Contraseña es Correcta")
location.href("acceso.htm")
</script>
<%end if%>

----------------------------------------------------------

espero que te sirva

un saludo
  #6 (permalink)  
Antiguo 15/05/2009, 11:55
Avatar de Cameron_2006  
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 4 meses
Puntos: 0
Respuesta: validación de usuarios

Gracias a ambos, ya me funcionó lo que me dijo Adler, mil gracias ya voy a abrir otro tema, es que no salgo de una...
  #7 (permalink)  
Antiguo 15/05/2009, 13:04
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 4 meses
Puntos: 126
Respuesta: validación de usuarios

Cita:
Iniciado por Cameron_2006 Ver Mensaje
Gracias a ambos, ya me funcionó lo que me dijo Adler, mil gracias ya voy a abrir otro tema, es que no salgo de una...
Así andamos todos
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 11:35.