mmmmm gracias por tu analisis yoya, la verdad yo lo use hace años para una intranet que no hiba tener acceso a internet (gracias a Dios). cuando apenas estaba empezando. y no lo volvi a revisar incluso lo habia pasado a español, pero ya ni encuentro la traduccion.
EN su tiempo lo vi genial, algun sistema moderno asi que recomiendes ?
Y otra cosa, cuando uno usa una validacion javascript para comprobar si el usuario que estan ingresando de verdad existe en la BD, antes de confirmar usuario-contraseña, se podria decir que se protege el login de SQLI ?
algo asi:
El formulario de login:
<?php
if(isset($_POST['send'])){ if(consultarEmaillogin())
$emailogin = "error";
//Comprobamos si todo ha ido bien
if($emaillogin != "error")
$status = 1;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>login</title>
</head>
<body>
<font face="Arial">
<center>
Sistema Central de gestion de Digitadores
</center>
<?php if(!isset($status)): ?> <center><form name="form1" method="post" action="procesar_ingreso.php">
<table width="200" border="0" align="center">
<tr>
<td>correo electrónico</td>
<td><input type="text" name="emaillogin" id="emaillogin" onblur="return consultarEmaillogin()" /></td>
</tr>
<tr>
<td height="49">contraseña</td>
<td><input type="password" name="password" id="password" />
<font size=1><a href="sendpass.php">¿Olvidó su contraseña?</a></font></td>
</tr>
<tr>
<td colspan="2"><center>
<input type="submit" name="nuevo" id="nuevo" value="Ingresar" />
</center></td>
</tr>
</table>
<label for="password"></label>
</form></center>
<?php else: ?>
<center><h1></h1></center>
<?php endif; ?>
</font>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="main.js"></script>
</body>
</html>
el javascript que valida (main.js - utiliza jquery.js):
$(document).ready(function(){
//variables globales
var searchBoxes = $(".text");
var inputUsername = $("#username");
var reqUsername = $("#req-username");
function consultarEmaillogin(){
var emailogin = inputEmaillogin.val();
$.getJSON('consultar_num_doc.php?email='+emailogin,function(data){
if( data.existe == false ){
alert("Este email no esta registrado");
inputEmaillogin.addClass("error");
return false;
}
});
}
inputEmaillogin.blur(consultarEmaillogin);
//controlamos la validacion en los distintos eventos
// Perdida de foco
inputUsername.blur(validateUsername);
inputUsername2.blur(validateUsername2);
inputPassword1.blur(validatePassword1);
inputPassword2.blur(validatePassword2);
// Pulsacion de tecla
inputUsername.keyup(validateUsername);
inputUsername2.keyup(validateUsername2);
inputPassword1.keyup(validatePassword1);
inputPassword2.keyup(validatePassword2);
// Envio de formulario
$("#form1").submit(function(){
if(validateUsername() & validateUsername2() & validatePassword1() & validatePassword2() )
return true;
else
return false;
});
//controlamos el foco / perdida de foco para los input text
searchBoxes.focus(function(){
$(this).addClass("active");
});
searchBoxes.blur(function(){
$(this).removeClass("active");
});
});
y si se valida por javascript que el usuario ingresado existe se procede a validar su ingreso asi (procesar_ingreso.php):
<?php
include("libreria_ingreso.php");
if(chequear_campos_vacios() and chequear_invalidos())
{
$email= $_POST['emaillogin'];
$password= $_POST['password'];
$connect=Conectarse();
//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM admin WHERE email='$email' and clave='$password'";
//Ejecuto la sentencia
//usuario y contraseña válidos
//defino una sesion y guardo datos
$_SESSION["email"]=$_POST['emaillogin'];
header ("Location: admin.php"); }else {
//si no existe le mando otra vez a la portada
$mensaje="contraseña invalida";
print "<script>alert('$mensaje')</script>";
print("<script>window.location.replace('index.php');</script>");
//header("Location: index.php");
}
}
?>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="main.js"></script>