Captcha Abfrage für Formulare
Samstag, 24. März 2007 | Autor: Pr0g
Das Captcha Script (Teil 2)
Was jetzt noch fehlt sind die Schriftzeichen, welche genutzt werden sollen. Da in manchen Schriftarten bspw. eine 0 (Null) schlecht von einem O unterschieden werden kann, wird nur ein bestimmter Zeichensatz verwendet. Dafür ist der nächste Code zuständig:
// Zeichensatz setzen
$chars = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', 'T', 'U',
'V', 'W', 'X', 'Y', 'Z', '2', '3', '4', '5', '6', '7', '9');
In dem Array $chars werden alle erlaubten Zeichen gespeichert. Das Array kann beliebig angepasst werden. Da ich später bei der Überprüfung des Codes keinen Unterschied zwischen Groß- und Kleinschreibung mache, habe ich jeden Buchstaben auch nur einmal eingetragen. Wer möchte kann auch noch Kleinbuchstaben nutzen, bei der späteren Überprüfung weise ich nochmal auf die dafür nötige Änderung am Prüfcode hin.
Nun können wir beginnen das Captcha Bild zu erzeugen. Zuerst wird ein neues Bildobjekt auf Grundlage eines der Hintergrundbilder erzeugt:
// Bild erzeugen
$img = imagecreatefrompng('bg/bg' . $bg_id . '.png');
Durch imagecreatefrompng() wird das neue Bildobjekt im Speicher erstellt und ein Verweis darauf in der Variable $img gespeichert. Dieser Verweis wird später allen Bildfunktionen mit übergeben, damit diese “wissen” auf welches Bildobjekt sie zugreifen sollen. Durch die zuvor in $bg_id gespeicherte Id wird das ausgewählte Hintergrundbild angegeben.
Nun kommt der Block zum Erzeugen und Schreiben des Codes auf das Captcha.
$code = '';
$xpos = rand(3, 8);
for ($i = 0; $i <= 3; $i++) {
In $code werden gleich die Zeichen des Captchas gespeichert, damit der Code später weiterverarbeitet werden kann.
Die Position für das erste Zeichen wird zufällig gewählt und in die Variable $xpos geschrieben.
Danach beginnt die Schleife mit vier Durchgängen für vier Zeichen. Je nach Breite der Hintergrundbilder kann die Anzahl der Zeichen auch verändert werden. Dazu muss nur die 4 durch eine passende Zahl ersetzt werden.




Sonntag, 2. März 2008
Der Captcha-Artikel sieht *sehr* gut aus (auch wenn ich noch keine Zeit hatte, ihn im einzelnen durchzulesen). Vielen Dank!
Sonntag, 2. März 2008
Es scheint allerdings gute Argumente zu geben, auf Captchas zu verzichten, vgl.
http://1ngo.de/web/captcha-spam.html
Sonntag, 2. März 2008
Klar sind Captchas nicht das perfekte Wundermittel gegen Spam, wurde von mir ja auch nie behauptet. Ich sehe sie lediglich als eine Lösung von vielen und daher der Artikel
Dienstag, 24. Juni 2008
Das Tut ist wirklich gut,bei mir gibt es allerdings einen Schönheitsfehler,es findet kein Abbruch statt wenn ich überhaupt nichts eintrage.??habe es in mein Gästebuch eingefügt. (-: