>> Inhaltsverzeichnis >> Anleitung für Entwickler >> Kochbuch

Anleitung für Entwickler

Kochbuch

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.

YANA 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, erstellt YANA automatisch eine neue Tabelle.

Wie benutze ich ein CAPTCHA für mein Plugin?

YANA 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: eine 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 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: */
    $bool $YANA->handle("security_check_image"$formular_daten);
    if ($bool) {
        print "Eingabe korrekt.";
    } else {
    print "Eingabe ist falsch.";
    }
?>

yana framework by:Homepage: Thomas Meyer, www.yanaframework.net