Home

Captcha Abfrage für Formulare

Samstag, 24. März 2007 | Autor: Pr0g

Das Captcha Script

Nun ist es so weit und die Datei “captcha.php” wird geöffnet. Den Anfang macht der folgende Code:

<?php

// Bild Id generieren
$bg_id rand(13);

Zuerst wird zufällig eines der drei Hintergrundbilder ausgewählt, bzw. die Id für ein Bild ermittelt und in die Variable $bg_id geschrieben.

Der Befehl rand(min, max) gibt eine Zufallszahl zwischen 1 und 3 zurück. Sollten mehr (oder weniger) als drei Bilder für den Hintergrund gespeichert worden sein, so muss die 3 im Code durch den passenden Wert ersetzt werden.

Als nächstes wird eine Auswahl für die spätere Schriftfarbe der einzelnen Buchstaben zur Verfügung gestellt. Dies geschieht mit folgendem Code:

// Schriftfarben setzen
switch ($bg_id) {
  case 
1:
  case 
2$colors = array('100''010''110''011''101'); break;
  case 
3$colors = array('100''001''110''011'); break;
}

Da nicht jede Farbe auf jedem Hintergrundbild gut lesbar ist, kann hier für jedes Bild angegeben werden, welche Farben genutzt werden dürfen. Die einzelnen Farben werden als Array in der Variable $colors gespeichert.

Da Bild eins und zwei die selben Farben nutzen können wird in dem ersten case-Zweig kein break; gesetzt, wodurch der nachfolgende case-Zweig auch aufgerufen wird. Da an dessen Ende nun jedoch ein break; steht wird abgebrochen und der dritte Zweig nicht mehr ausgeführt. Dieser wird nur ausgeführt, wenn in $bg_id der Wert 3 steht.

Wer sich nun wundert was das für Farben sein sollen, eine Erklärung dazu kommt jetzt. Für die Captchas in diesem Artikel verwende ich nur kräftige Farben, wie bspw. Rot oder Blau. Diese als HTML Farbcode lauten #FF0000 und #0000FF. Um jedoch nicht immer so viel schreiben zu müssen habe ich das ganze etwas vereinfacht.

Das # Zeichen am Anfang wird weggelassen, statt 00 wird 0 und statt FF wird 1 geschrieben. Der Wert 010 ergibt also später #00FF00 (Grün). Diese Kurzschreibweise vereinfacht auch die Umwandlung in die RGB Anteile, welche von PHP gebraucht werden. Dazu aber später mehr.

Seiten: 1 2 3 4 5 6 7 8 9 10 11

Trackback: Trackback-URL | Feed zum Beitrag: RSS 2.0
Thema: Artikel

Diesen Beitrag kommentieren.

4 Kommentare

  1. 1
    Osterhase 
    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!

  2. 2
    Osterhase 
    Sonntag, 2. März 2008

    Es scheint allerdings gute Argumente zu geben, auf Captchas zu verzichten, vgl.
    http://1ngo.de/web/captcha-spam.html

  3. 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 ;)

  4. 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. (-:

Kommentar abgeben