>> Inhaltsverzeichnis >> Anleitung für Entwickler eines CAPTCHA

Verwendung eines CAPTCHA

Allgemeines zum Verständnis

Ein CAPTCHA ist eine Methode zum Schutz vor Spam. Dazu wird eine Grafik mit einem Text angezeigt, welchen der Besucher abtippen muss. Ein Mensch kann das mit Leichtigkeit, ein Spam-Bot hingegen kann das nicht. Auf diese Weise kann eine große Menge unerwünschter Werbung vermieden werden.

Das Framework hat eine Funktion zum Erzeugen einer CAPTCHA-Grafik im PNG-Format (Mime-Type "image/png"), welche einen zufällig erzeugten Code aus Zahlen und Buchstaben enthält. Ein Parameter gibt an, welche Positionsnummer dieser Code in der aktuellen Code-Tabelle hat. Die Codetabelle enthält 10 Einträge und verfällt in einem Zeitraum von 10 Minuten bis etwa 3 Stunden nach dem Aufruf der Funktion automatisch. Wenn die Tabelle abgelaufen ist, wird automatisch eine neue Tabelle erstellt.

Wie benutze ich ein CAPTCHA für mein Plugin?

Das Yana Framework hat eine solche Funktion bereits eingebaut. Sie müssen sich also nicht selbst darum kümmern, sondern es lediglich benutzen.

Das CAPTCHA besteht aus zwei Teilen: einer Grafik mit einem Input-Feld, welche im Template eingebunden werden müssen und einer Abfrage, welche im Quellcode des Plugins eingebunden werden muss und die true beziehungsweise false liefert, wenn die Eingabe korrekt beziehungsweise falsch war.

Dazu folgendes Beispiel:

Quellcode des Templates:
[%captcha%]

Screenshot
Abbildung: Beispiel für die Darstellung im Browser

Quellcode des Plugins:
<?php 
global $YANA;

/**
 * zum Prüfen der Eingabe:
 *
 * Die Variable $formular_daten kann je nach Bedarf auf
 * $_POST, $_GET, oder $ARGS gesetzt werden.
 */
$bool $YANA->handle("security_check_image"$formular_daten);

if ($bool) {
    print "Eingabe korrekt.";
} else {
    print "Eingabe ist falsch.";
}
?>

Einbau in älteren Versionen vor 2.9.3

Die Unterstützung für CAPTCHAs wurde in Version 2.8.0 eingeführt. Das obige Beispiel gilt für das Yana Framework ab Version 2.9.3. In dieser Version wurde die Handhabung des CAPTCHA deutlich vereinfacht.

Für die älteren Versionen 2.8.0 bis 2.9.2 verwenden Sie bitte das folgende Beispiel:

Quellcode des Template:
<input type="hidden" name="security_image_index" value="[%$SECURITY_IMAGE_INDEX%]">
<img src=[%"action=security_get_image&security_image_index=$SECURITY_IMAGE_INDEX"|url%]>
<input type="text" name="security_image">
Quellcode des Plugins:
<?php 
global $YANA;

/* zum Erzeugen des Formulars: */
/* Die Variable SECURITY_IMAGE_INDEX muss für das Formular gesetzt werden.
   Sie kann einen beliebigen Integerwert zwischen 1 und 9 haben. */
$YANA->setVar("SECURITY_IMAGE_INDEX", rand(1,9));

/**
 * zum Prüfen der Eingabe:
 *
 * Die Variable $formular_daten kann je nach Bedarf auf
 * $_POST, $_GET, oder $ARGS gesetzt werden.
 */
$bool $YANA->handle("security_check_image"$formular_daten);

if ($bool) {
    print "Eingabe korrekt.";
} else {
    print "Eingabe ist falsch.";
}
?>

Für noch ältere Versionen (älter als Version 2.8.0) ist ein Einbau von Hand erforderlich.

Autor: Thomas Meyer, www.yanaframework.net