wenn mehr als 3 falsche Einreichen, captcha zeigen
In meiner Websites, die die login-Seite, müssen Benutzer geben Sie Ihren Benutzernamen, Passwort und den captcha-code korrekt, wenn Sie möchten, geben Sie Bereich. Aber niemand, ich Erstens nicht mit den captcha. Und die andere Seite, Sie wissen, web-Sicherheit und spam-Tatsache.
So, in der ersten, zweiten und Dritten mal habe ich nicht wollen, um zu zeigen, captcha, aber über 3 falsch übermittelt, ich will es zu zeigen. Aber ich habe keine Ahnung, wie diese umzusetzen ist! Ich habe versucht,
$_SESSION['wrong_submit'] = 1;
$_SESSION['wrong_submit']++;
Natürlich nicht. Bitte könnten Sie mir helfen, wie kann ich dies tun?
- Sie versucht mit session.... was ist dann passiert?
- All die Zeit, die Sitzung ist der Wert gleich 1 ist.
- kannst du den vollständigen code seiner schwer zu erraten oder vermuten etwas, ohne den code.
- Sie haben einige Fehler in Ihrer Logik.
$_SESSION['wrong_submit'] = 1;
erraten, was diese Zeile macht? - Haben Sie die variable mit
isset($_SESSION['wrong_submit'])
? Ist die variable gehalten werden oder gelöscht und zurückgesetzt nach falschen Versuch? - Versuchen Sie es mit $_SESSION['wrong_submit'] += 1; die erhöht werden, indem man (ähnlich wie $_SESSION['wrong_submit']++; aber es wird nicht zurückgesetzt, es wieder auf 1. (Beachten Sie, es vielleicht zurücksetzen wieder auf 1, weil $_SESSION['wrong_submit']=1;. Nachdem Sie dies tun, stellen Sie sicher, Sie haben auch ein $_POST-Wert auslöst, wenn die $_SESSION['wrong_submit'] >= 3, so zeigt es die capcha.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie eine Spalte in der Benutzer Tabelle mit dem Namen
login_attempts
. Die Spalte Schritten auf jedem fehlgeschlagenen login-Versuch, und setzt auf dem erfolgreichen login.Die grundlegende Struktur könnte wie folgt Aussehen:
Zu überprüfen, die Anzahl der login-versuche, können Sie mithilfe von query wie folgt:
Nun in Ihrem PHP-code, können Sie überprüfen, ob der Wert größer ist als oder gleich 3, und die Anzeige des captcha-wenn ja:
Der ganze Sinn der captcha ist zu verhindern, dass Roboter auf Ihre Website zugreifen (Passwort-cracking etc.).
Sessions verwenden cookies. So vereiteln Sie Ihr system all der Roboter zu tun hat, ist nicht das cookie senden somit werden Ihre server denken, es ist der erste login-Versuch und daher nicht erfordern, ein captcha. Dies ermöglicht es dem Roboter, um zu versuchen, so oft wie es mag.
Also die Antwort ist ja über sessions, aber Sie untergraben die ganze Idee von captcha.
Können Sie versuchen, auf diese Weise....
PHPSESSIONID
in meinem Wunsch, meinewrong_pword_count
immer0
.