Codeschnipsel
Captcha mit dynamischen Fragen
Hallo ,
da ich oft gelesen habe , dass Captchas nichts nützen , da sie eh immer geknackt werden , habe ich mir überlegt wie man ein dynamisches Fragen - Antworten - Captcha erstellt - mit Erfolg!
Hier will ich euch zeigen wie das Simple , aber starke , Captcha funktioniert und wie ihr es selber coden und anpassen könnt.
Zuerst brauchen wir das Hauptcaptcha , ich habe eins von www.stoppt-den-spam.info genommen ,da ich mich nicht mit Bildern erstellen auskenne!
captcha.php
Code | |
|
Zuerst werden die Sessions gestartet und geresetet , dann werden die Fragen eingeladen und ein Zufallsmechanismus wählt irgendeine Frage ( durch Arrays ) und lässt sie auf den Bild anzeigen.
Außerdem wird die Antwort mitgleich gespeichert, damit sie im Formular verglichen werden kann , ob diese Antwort wirklich auf die Antwort passt.
Die Antwort Nummer ist zu gleich auch die Frage Nummer.
Ihr benötigt die Fradm.TTF , aber ihr könnt die Schriftart ganz leicht auswechslen durch eine beliebige , sie muss aber im Ordner mit drin sein , in der auch die captcha.php ist.
Das Hintergrundbild sieht so aus:
Das muss ebenfalls in einen Ordner mit captcha.php rein.
Nun kommen wir zu den Fragen , die man selber leicht erstellen und löschen kann sowie die Antworten dazu:
Fragen.php:
Code | |
|
Es wird ein Arrasy erstellt in denen alle Fragen kommen ( von 0 bis X ) und die Antworten genauso ( von 0 bis X ). Danach wird gezählt wieviele Fragen es gibt , und soviele Antworten gibt es logischerweise. Dies ist nötig , damit eine Zufallszahl gewählt werden kann , der in diesem Bereich liegt. Sonst wird eine Zufallszahl z.B 48 gewählt und in dieser Zahl ist überhaupt keine Frage gespeichert!
Ein Wert muss von $wieviele abgezogen werden , da die 0 noch mit drin ist und deswegen immer ein zuviel ist ( wenn man nicht -1 macht , dann kriegt man oft keine Frage zu Gesicht )
Zu guter Letzt das Formular:
eingabe.php
Code | |
|
Das Captcha.php wird als Bild eingeladen und man muss die Antwort dazu geben. Wenn man es abgeschickt hat , wird überprüft ob die Antwort zu der Frage passt , welche in der SESSION gespeichert wurde. Wenn die Arrays miteinander übereinstimmen , dann ist das Captcha richtig und es kann mit den Code weitergehen.
Dieses kleine Captcha ist besonders gut für amerikanische Bots und russische Bots , da diese keine Antworten dadrauf geben können , sondern ( wenn sie Glück haben ) die Frage die im Bild steht , ins Feld eintragen.
Man kann das Captcha natürlich weiter erweitern , aber in diesem Tutorial wird gezeigt wie man Arrays mit Sessions kombinieren kann.
Ein Danke an php-einfach , denn ohne die wär ich in PHP immer noch eine Null!
http://kellercoding.tk
mfg
Kommentare
Autor youzer