hola estoy intentando con manejar un control de intentos fallidos con el siguiente codigo:
<?php
include("conexion.php");
$usuario=$_POST["usu"];
$clave=$_POST["pas"];
$usu=("SELECT *FROM usuarios WHERE cedula='$usuario' and clave='$clave' and dia = 00 ");
$trae=mysql_query($usu);// or die (mysql_error());
$num_registros=mysql_num_rows($trae);
$row=mysql_fetch_array($trae);
//averiguando si existe el usuario
$usuario=("SELECT *FROM usuarios WHERE cedula='$usuario'");
$traer = mysql_query($usuario);// or die (mysql_error());
$row = mysql_fetch_array($traer);
$ced = $row[cedula];
$inte = $row[intentos];
$total = $inte + 1;
$tdia = $row[dia];
$di=date("d");
//finalizando averiguacion de usuario
ECHO "dia actual $di,<br> dia registrado $tdia <br>TOTAL $total";
if ($num_registros > 0 ){
//logueado con exito
//borro el numero de intentos y el dia lo paso a cero
$consul=("UPDATE usuarios SET intentos = 0, dia=00 WHERE cedula =$ced");
mysql_query($consul);//or die (mysql_error());
header("Location: inicio.php");
}else{
//si la cedula no esta en la base de datos lo devuelvo a inicio
if ($ced == 0){
header("Location: asas.html");
}else{
//si existe la cedula
if($total > 4){
//sumo un intento a la cuenta de intentos
$cons=("UPDATE `hyscov`.`usuarios` SET `intentos` = '$total' WHERE `usuarios`.`cedula` =$ced");
mysql_query($cons);// or die (mysql_error());
header("Location: asas.html");
}else{
// si los intentos son mayores a 3, lo bloqueo pasando de ceros del dia, al dia actual
$consult=("UPDATE `hyscov`.`usuarios` SET `dia` = '$di',`intentos` = '$total' WHERE `usuarios`.`cedula` =$ced");
mysql_query($consult);// or die (mysql_error());
//ahora pregunto si ya paso el tiempo de bloqueo que es un dia
if($di!=0 and $di<=$tdia){
//si no ha pasado el tiempo lo envio a la pagina de espera
header("Location: espera.php");
}else{
//si ya paso el tiempo lo reactivo, borro los datos el bloqueo que es el dia
$consul=("UPDATE usuarios SET intentos = 0, dia=00 WHERE cedula =$ced");
mysql_query($consul);// or die (mysql_error());
//lo envio al inicio para que vuelva a intentarlo
header("Location: asas.html");
}
}
}
}
?>
con un contados a la base de datos cuando este llega a tres registra el dia actual y al siguiente intento pregunta solo por los usuarios cual dia es igual a cero (bloqueados) y luego pregunto si el dia actual es diferente del registrado en la db y si es asi llevo el contador a cero borro el dia y lo envio a la pagina correspondiente