Wie: Passwort "ZuOftFalsch-Meldung" generieren geschlossen 

Status
Für weitere Antworten geschlossen.

reny

Registered +
Registriert
Okt. 2007
Beiträge
335
Hi ich habe folgendes Anliegen:
Ich möchte auf meiner PHP Site ein Loginfeld haben. Wenn man das Passwort aber mehr als dreimal falsch eingegeben hat soll man 5 min warten. Ich habe ein Formular auf welchem man die Daten eingibt. OnSubmit=>an php datei schicken zum prüfen.

mfg reny
 
Zuletzt bearbeitet von einem Moderator:
Hi,
ich sehe zwar im Post keine Frage und verstehe auch nicht die Schwierigkeit, die du hast, doch gibt es mehrere Wege zum Ziel.
PHP: Sessions - Manual
Oder PHP: Cookies - Manual
Oder halt über die IP, wobei du natürlich, um IP-Resets zu registrieren, auch verschiedene Varianten kombinieren kannst.
Oder du speicherst in einem input-hidden Feld die schon getätigte Anzahl.

Wo ist das Problem?

Gruß
Broken Sword
 
oder - sofern du sowieso ne SQL-DB verwendest - kannst du die fehlgeschlagenen Versuche mit Timestamp auch darin speichern und jedes mal überprüfen lassen, ob in den letzten x Minuten y falsche Passwörter probiert wurden.

(nicht vergessen das auch von Zeit zu Zeit zu löschen, nicht dass deine DB geflooded wird :D )


mfg Undeath
 
hier findet ihr mal meine leider fehlerhaften codes:
index.php:
PHP:
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
 





$timestamp = time(); 
//$datum = date("i", $timestamp); 
$datum=idate(i,$timestamp); 
echo $datum; 

$_SESSION['zeit']=$datum; 
$_SESSION['anzahl']=0; 

?> 

 




 


Willkommen auf der Lernwebsite


Zum einloggen bitte Zugangsdaten eingeben


 


 


[TABLE]

[TR]

[td] 
 Authentifikationsnummer  [/td]

[td] 
[/td]

[/TR]

[TR]

[td] 
 Kennwort  [/td]

[td] [/td]

[/TR]

[/TABLE]

in.php:

PHP:
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
 



$verbleibend=0; 


$_SESSION['authnummer'] = $_POST[nummer]; 
$_SESSION['kennwort']=$_POST[kenn]; 
$_SESSION['eingeloggt']=false; 
$timestamp = time(); 
$datum = idate("i", $timestamp); 


if($_SESSION['anzahl'] 


if ($_POST[kenn] && $_POST[nummer] && $_POST[kenn]=="kennwort" && $_POST[nummer] =="admin") { 
// hier steht der mail-Befehl zum Versenden 
$_SESSION['eingeloggt']=true; 
//header("Location: innen.php"); 
echo "Erfolgreich eingeloggt"; 


echo " "; 


} else { 
echo "Bitte geben Sie korrekte Daten ein"; 
echo " "; 
$_SESSION['anzahl']++; 



if($_SESSION['anzahl']>=3){ 
$verbleibend=$_SESSION['zeit']; 
$verbleibend=$verbleibend+5; 
echo $verbleibend; 

} 
} 
//}else{ 
//echo " Sie muessen noch warten"; 
}else{ 
$timestamp = time(); 
$datum = date("i", $timestamp); 
if($datum==$verbleibend){ 
$_SESSION['anzahl']=0; 

} 
} 
?>
 
Zuletzt bearbeitet von einem Moderator:
hm... also mal vorn weg....

du speicherst nich das kennwort und den benutzername in der php datei?


zum eigentlichen... warum speicherst du die versuche, so wie es undeath gesagt a
hat, in einer datenbank.... so wie du es machst, is es doch völlig sinnlos... session werden beim browser schliesen doch meines wissens eh ungültig... also fängt es da wieder von vorn an.... bei der datenbank variante ist das unabhängig davon wie oft man den browser schließt....

mach dir ma da gedanken drüber....

wenn hilfe brauchst, bekommst die sicher auch hier....
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

Antworten
2
Aufrufe
1K
J
Y
Antworten
1
Aufrufe
2K
Schlachter
S
Zurück
Oben Unten