Hola foreros....
Estoy trabajando en un script en php en el cual si el usuario intento mas de 5 veces ingresar al sistema y introdujo mal la clave. EL sistema lo bloqueará durante 20 min.
Lo que me tiene aproblemado es que cuando quiero calcular el ultimo intento (el cual esta guardado en la BBDD) VS la fecha actual, no me resulta.
Lo que hago es rescatar la fecha del ultimo intento y compararla con la fecha actual en Segundos (funcion strtotime de PHP), pero por alguna razon, que desconozco, la fecha actual no me la transforma en Segundos, pero si la fecha de la BBDD...
Haber si me pueden hechar una mano, dejo el codigo.
Código PHP:
Ver original<?php
include ("conexion.php");
$username = filter_input(INPUT_POST
, 'username',FILTER_SANITIZE_STRING
); $password = filter_input(INPUT_POST
, 'password',FILTER_SANITIZE_STRING
);
$query01 = "SELECT [login],[empresa],([nombre_tec]+' '+[apellido_1_tec]+' '+ [apellido_2_tec]) as fullname,[id_perfil],[email],[estado] FROM tecnico WHERE Login= '".$username."' and Password='".$password."'";
{
$login=$resul01[0];
$empresa=$resul01["1"];
$fullname=$resul01[2];
$perfil=$resul01["3"];
$email=$resul01["4"];
$activo=$resul01["5"];
$intentos = $resul01["6"];
}
if ($num_registros==1)
{
if ($activo==0)
{
header("refresh: 1; url = ../index.php"); echo "<script language=JavaScript>alert('Usuario se encuentra desabilitado. Si necesitas acceder favor de comunicarte con el administrador. ');</script>";
//include ("../index.php");
}
if ($activo==1)
{
$reviso_ultimo_intento = "SELECT [ultimo_intento], intentos FROM [SCI].[dbo].[Tecnico] WHERE Login= '".$username."'";
$ejecuto_ultimo_intento =mssql_query($reviso_ultimo_intento,$conexion); $ultima_fecha = $info_ultimo_intento['0'];
$N_intentos = $info_ultimo_intento['1'];
}//cierro while
//$fecha_actual = date("F j Y g:i a")."<br>";
$fecha_actual = date("d m Y H:i");
echo "ultima fecha ".$ultima_fecha."<br>";
echo "Fecha Acual ".$fecha_actual."<br>";
echo "Cambiamos la fecha a segundos <br>";
echo "fecha actual ".$fecha_actual = strtotime($fecha_actual)."<br>";// No me transforma en segunos la fecha -_- echo "Ultima Fecha ".$ultima_fecha = strtotime($ultima_fecha);
$mi_sesion = $login;
$_SESSION['usuario']="$mi_sesion";
$_SESSION['perfil']="$perfil";
$_SESSION['nombre']="$fullname";
$_SESSION['mail']="$email" ;
$query_last_conexion = "update [SCI].[dbo].[Tecnico] set
[last_login]= getdate(),
[login_ip] ='".$_SERVER['REMOTE_ADDR']."',
[ultimo_intento] = getdate(),
intentos =0 where login ='".$username."'";
$ejecuto_last_conexion = mssql_query($query_last_conexion,$conexion);
//muestra el inventario redireccionamiento a la pagina menu.php
header("refresh: 0; url =../menu.php"); //echo 'Espere un momento y será redireccionado...';
}
}else{
//echo "El usuario o password no son validos";
$query_fail ="SELECT intentos,ultimo_intento FROM [SCI].[dbo].[Tecnico] WHERE Login= '".$username."'";
$intentos = $show_intentos['0'];
$ultimo_intento = $show_intentos['0'];
}//cierre while
if($intentos<5){
$intentos = $intentos+1;
$query_last_conexion = "update [SCI].[dbo].[Tecnico] set [login_ip] ='".$_SERVER['REMOTE_ADDR']."',[ultimo_intento] = getdate(), intentos =".$intentos." where login ='".$username."'";
$ejecuto_last_conexion = mssql_query($query_last_conexion,$conexion);
header("refresh: 1; url = ../index.php"); echo "<script language=JavaScript>alert('El usuario y/o la password son incorrectos, este es el ".$intentos." intento de 5');</script>";
}else{
echo "<script language=JavaScript>alert('La cuenta ".$username." a sido Suspendida por 20 Min, ya que ah intentado mas de 5 veces'); window.location='../index.php';</script>";
}//cierre del 2° else
}//cierre del 1° else