Programmer's Reference Guide
| Einführung |
Captcha Anwendung
Alle konkreten CAPTCHA Objekte implementieren Zend_Captcha_Adapter, welches wie folgt
aussieht:
interface Zend_Captcha_Adapter extends Zend_Validate_Interface
{
public function generate();
public function render(Zend_View $view, $element = null);
public function setName($name);
public function getName();
public function getDecorator();
// Zusätzlich um das Zend_Validate_Interface zu befriedigen:
public function isValid($value);
public function getMessages();
public function getErrors();
}
Die benannten Mutatoren und Zugriffsmethoden werden verwenden um den Captcha Identifikator zu
spezifizieren und zu empfangen. getDecorator() kann verwendet werden um einen
Zend_Form Dekorator entweder durch seinen Namen zu spezifizieren oder indem ein aktuelles
Dekoratorobjekt zurückgegeben wird. Der wirkliche Schlüssel seiner Verwendung liegt aber in
generate() und render(). generate() wird verwendet
um das Captcha Token zu erstellen. Dieser Prozess speichert das Token typischerweise in der
Session damit es in nachfolgenden Anfragen verglichen werden kann. render() wird
verwendet um die Informationen die das Captcha repräsentieren darzustellen -- ob es ein Bild ist,
ein Figlet, ein logisches Problem, usw.
Ein typischer Verwendungsfall könnte wie folgt aussehen:
// Eine Instanz von Zend_View erstellen
$view = new Zend_View();
// Originale Anfrage:
$captcha = new Zend_Captcha_Figlet(array(
'name' => 'foo',
'wordLen' => 6,
'timeout' => 300,
));
$id = $captcha->generate();
echo $captcha->render($view);
// Eine nachfolgende Anfrage:
// Annahme das das Captcha vorher eingestellt wurde, und $value der übertragene Wert ist:
if ($captcha->isValid($_POST['foo'], $_POST)) {
// Validated!
}
| Einführung |
