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

Que falla en esta validación?

Estas en el tema de Que falla en esta validación? en el foro de ASP Clásico en Foros del Web. 2º Round... Wenas... A ver si alguien sabe que falla en el código para validar este login: Código de login.asp: Código HTML: <body> <% var ...
  #1 (permalink)  
Antiguo 09/08/2008, 01:13
 
Fecha de Ingreso: agosto-2007
Mensajes: 106
Antigüedad: 16 años, 9 meses
Puntos: 0
Que falla en esta validación?

2º Round...
Wenas...
A ver si alguien sabe que falla en el código para validar este login:
Código de login.asp:

Código HTML:
<body>	
    <%
		var formLogin = Session("formLogin");
		var erroresLogin = Session("erroresLogin");
		
		if (!formLogin){
			formLogin = new Object();
			formLogin.email = "";
			formLogin.password = "";
			Session("formLogin") = formLogin;
		}
		
		if (!erroresLogin){
			erroresLogin = new Array();
			Session("erroresLogin") = erroresLogin;
		}
	%>
    <div id="error_login">
    	<%
			for (e in erroresLogin){
				Response.Write(erroresLogin[e]);
			}
		%>
    </div>
	<div id="div_form_login">
		<form id="login-form" action="procesaLogin.asp" method="post" onsubmit="return validaLogin()" >
        	<div id="div_email">
            	<label id="label_email" for="email">Email:</label>
                <input id="email" name="email" value="<%= formLogin.email %>" type="text" />
                <div id="error_email">-Introduce un email válido.-</div>
            </div>
            <div id="div_password">
            	<label id="label_password" for="password">Password:</label>
                <input id="password" name="password" value="<%= formLogin.password %>" type="password" />
                <div id="error_password">-Introduce un password válido.-</div>
            </div>
            <div id="div_submit">
            	<input id="entrar" name="entrar" value="Entrar" type="submit" />
            </div>
        </form>
	</div>
</body> 
Y este el codigo de procesaLogin:
Código:
<body>
	<!-- #include file = "conexion/abrir_conexion.asp" -->
    
	<% 
		var formLogin = Session("formLogin");
		var erroresLogin = Session("erroresLogin");
		
		if(formLogin && erroresLogin) {
			formLogin.email = Request.Form("email").Item;
			formLogin.password = Request.Form("password").Item;
		}
		//Recoger datos del form
		var email = Request.Form("email").Item;
		var password = Request.Form("password").Item;
		
		if (email=="" || password==""){
			Session("erroresLogin") = "Los campos Email y Password están vacíos.";
			Response.Redirect("login.asp");
		}
		else{
			//Seleccionar de la tabla Usuarios el registro con dicho email y password
			var sql = "SELECT * FROM Usuarios WHERE email='"+email+"' AND password='"+password+"'";
			
			var rs = Server.CreateObject("ADODB.Recordset");
			rs.Open(sql, conexion);
			
			if (rs.EOF){
				Session("erroresForm") = "El Email o Password no son correctos.";
				Response.Redirect("login.asp");
			}
			else{
				formLogin.email = email;
				formLogin.password = password;
				Session.Timeout = 60;
				Response.Redirect("default.asp");
			}
			rs.Close();
			rs = null;
		}
	%>
    <!-- #include file = "conexion/cerrar_conexion.asp" -->
</body>
No me muestra los errores. Que falla????
Gracias....
  #2 (permalink)  
Antiguo 09/08/2008, 04:04
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Respuesta: Que falla en esta validación?

Hola,

Lo primero decirte que los objetos personalizados (o sea, los que no son propios de ASP) no se llevan bien con las sessions y/o applications. Usa arrays para eso.

Segundo, cuando hace la validación en procesaLogin, envias los errores como String (Session("erroresLogin") = "Los campos Email y Password están vacíos.";) por lo que

if (!erroresLogin){
erroresLogin = new Array();
Session("erroresLogin") = erroresLogin;
}

no tiene sentido. Usalo asi:

En vez de:

Código:
 <div id="error_login">
        <%
            for (e in erroresLogin){
                Response.Write(erroresLogin[e]);
            }
        %>
    </div> 
haz:

Código:
<div id="error_login">
        <%
            if(Session("erroresLogin")!=""){
                Response.Write(Session("erroresLogin"));
            }
        %>
    </div> 
Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
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 13:35.