Yo lo hago con variables de sesion, el problema es que si abres otro navegador, tendras otros 5 intentos disponibles.
Código php:
Ver original// La primera linea del script:
// Verifica si el usuario esta baneado:
if(isset($_SESSION['banned']) && $_SESSION['banned'] > time()) die('Debes esperar unos minutos antes de ingresar nuevamente al sitio.');
// Si el nombre de usuario o contraseña son incorrectos agregas esto:
// Inicializar el contador si no existe
if(!isset($_SESSION['intentos'])) $_SESSION['intentos'] = 0;
// Incrementar el contador
++$_SESSION['intentos'];
if($_SESSION['intentos'] == 5) {
// Banear por media hora
$_SESSION['banned'] = time() + 1800; die('Superaste el limite de intentos de ingreso... ban!!!'); }
// Si todavia no va a ser baneado
die('Llevas ' . $_SESSION['intentos'] . ' de ingreso, a la 5ª vez seras baneado por unos minutos.');