Agguingi una tabella al DB in cui riporti per esempio: IP, numero_tentativi, timestamp.
l'utente prova il login
Questo scritto adesso al volo, sicuramente la logica è migliorabile, ma l'idea è questa.codice:if ( esiste una entry con l'IP dell'utente ) { if ( numero_tentativi < della soglia da te scelta ) { tenti il login if ( il login fallisce ) { +1 ai tentativi falliti ed aggiornamento del timestamp } } else if ( numero_tentativi == alla soglia da te scelta AND il minuto non è passato ) { notifichi all'utente che deve aspettare un tempo pari a timestamp+60 - time() } else if ( numero_tentativi == alla soglia AND il minuto è passato ) { elimini la riga relativa all'IP dalla tabella e provi il login if ( il login fallisce ) { inserisci nella tabella una entry per l'IP dell'utente con 1 al numero di tentativi e il timestamp corrente } } } else { provi il login if ( il login fallisce ) { inserisci nella tabella una entry per l'IP dell'utente con 1 al numero di tentativi e il timestamp corrente } }

Rispondi quotando