Mach einfach nach dem user sich nicht einloggen können in dem teil session einfach per js dieses aufspriges script fenster oder du leitest den suer um so wie z.b. auf die seite da wo user keinen zutritt haben![]()
rechjtschreibefehler im zweiten code steht
müsstePHP-Code:$_GET['content'] = '/error/kein_zutrit';
seinPHP-Code:$_GET['content'] = '/error/kein_zutritt';
aber ich würde eine neue datei anlegen
mit dem inhalt
Datei in den ordner content/error/
mit dem namen falscher_login.php
und dan folgenden code verwendenHTML-Code:<?head("Zutritt verweigert");?> Der Zutritt zu diesem Bereich wurde Dir verweigert!<br> Es wurde 3 mal ein falsches Passwort eingegeben, <br> dadurch wurde dein Account bei uns gesperrt!<br> Dies dient zur Sicherheit!!<br> bitte warte eine kurze zeit der Account,<br> wird automatisch wieder freigeschaltet <?foot();?>
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']>2 && $f_check['f_time']>(time()-600)){
$_GET['content'] = '/error/falscher_login';
}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 ');
}
SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting
habe folgendes Problem wenn man das Passwort nun falsch eingibt wird man zwar gesperrt und kann sich mit dem Nick nicht einloggen aber mit der Klammid kann man sich trotzdem noch einloggen.
ok, da die variante mit der klamm id nicht im grundscript drin ist, wurde die auch nicht bedacht...
(der tippfehler war natürlich beabsichtigt, um euch zu zeigen, dass man hier ne eigene fehlerseite reinmachen soll)
wenn du beide login möglichkeiten hast, musst du halt bei den datenbank abfragen immer ne "weiche" einbauen, also wenn der eingegebene "nickname" nur aus zahlen besteht, dann halt per uid=$_POST['nickname'], ansonsten so wie der code jetzt ist...
könnte man zwar auch noch per OR uid=... machen, und den andeern teil muss man natürlich auch noch ändern.PHP-Code:// Wenn es den User garnicht giebt
} else {
$_GET['content'] = '/error/kein_zutritt';
if(ctype_digit($_POST['nickname'])){
db_query('UPDATE '.$db_prefix.'_kontodaten SET f_logins=f_logins+1, f_time='.time().' WHERE uid="'.$_POST['nickname'].'"');
}else{
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 ');
}
}
}
Kill one man, and you are a murderer.
Kill millions of men, and you are a conqueror.
Kill them all, and you are a god. - Jean Rostand, Thoughts of a Biologist (1939)
Eine Frage habe ich dazu noch. Gebe ich zb das Passwort einmal falsch ein und log mich dann mit dem richtigen Passwort ein. Dann reicht es beim nächsten mal 2x das Passwort falsch einzugeben bis man gesperrt ist. Könnte man da nicht so machen das nach einem erfolgreichen LogIn die Loginversuche wieder auf 3 zu setzen.
Geht einfach, täglicher Cron der das Feld nullt wenn es nicht auf 3 ist.
MfG
Ja das könnte man machen... schöner finde ich wenn es erst auf null gesetzt wird wird wenn der login erfolgreich war. Also muss es dann in die Login mit rein oder?