So, da das an sich nicht viel Aufwand sein sollte, hier mal ne schnelle Anleitung dazu:

SQL:

Code:
ALTER TABLE `vms_kontodaten` ADD `f_logins` TINYINT( 2 ) NOT NULL DEFAULT '0',
ADD `f_time` INT( 11 ) NOT NULL ;
datei lib/session.lib.php:

suchen:
PHP-Code:
    // Wenn es den User garnicht giebt    
    
} else {
    
$_GET['content'] = '/error/kein_zutritt';
    } 
ersetzen:

PHP-Code:
    // Wenn es den User garnicht giebt    
    
} else {
    
$_GET['content'] = '/error/kein_zutritt';
    
db_query('UPDATE '.$db_prefix.'_kontodaten k, vms_userdaten u SET k.f_logins=k.f_logins+1, 

k.f_time='
.time().' WHERE u.nickname="'.$_POST['nickname'].'" AND k.uid=u.uid ');
    }
    
    } 
jetzt werden schon mal falsche logins geloggt, und die dazugehörige zeit.

dann suchen:

PHP-Code:
// Login
if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) { 
ersetzen mit:

PHP-Code:
// Login
if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) {

    
$f_check mysql_fetch_array(db_query('SELECT k.f_logins,k.f_time FROM '.$db_prefix.'_kontodaten k 

LEFT join '
.$db_prefix.'_userdaten u ON u.uid=k.uid WHERE u.nickname="'.addslashes($_POST['nickname']).'" 

LIMIT 1'
));
    if(
$f_check['f_logins']>&& $f_check['f_time']>(time()-600)){
    
$_GET['content'] = '/error/kein_zutrit';
    }else{
    if(
$f_check['f_logins']>2){
    
db_query('UPDATE '.$db_prefix.'_kontodaten k, vms_userdaten u SET k.f_logins=0 WHERE 

u.nickname="'
.addslashes($_POST['nickname']).'" AND k.uid=u.uid ');
    } 
kontne ich selber noch nicht testen, wäre nett, wenn das mal jemand macht und sein ergebnis hier postet

funktionsweise:

nach 3 maliger falscher eingabe des passworts zu einem vorhandenen usernamen kann man sich unter dem namen 10 minuten lang nicht mehr einloggen, egal ob richtiges passwort oder falsches.