Kevin Papst Freiberuflicher Software Entwickler

Zend_Captcha ohne Zend_Form

Z

Gestern habe ich mich einige Zeit damit rumgeärgert, das Zend_Captcha nicht so will wie ich und auch dutzende Blog Beiträge und Bug Issues konnten nur bedingt helfen. Daher will ich hier ein Minimalbeispiel veröffentlichen, damit Suchende nicht wie ich ihre Zeit unnütz vertrödeln müssen 😉

Bei Erstellung des Formulars:

$view = new Zend_View();
$captcha = new Zend_Captcha_Figlet(array(
    'name'    => 'captcha',
    'wordLen' => 4,
    'timeout' => 300,
));
$id = $captcha->generate();
?>

<form method="post" action="">
<?php echo $captcha->render($view); ?>
<input type="hidden" name="captcha[id]" value="<?php echo $id; ?>" />
<input type="text" name="captcha[input]" /><br />
<input type="submit" value="Auflösen" />
</form>

Wichtig ist hierbei, das der Name (den man auch über $captcha->setName() setzen könnte) mit den Formularwerten übereinstimmt

Anmerkung: Falls Ihr in einer View seid, das $view einfach durch $this ersetzen beim Aufruf von render()

Wenn Ihr nun die Captcha Lösung des Anwenders validieren wollt, das Captcha einfach nochmal erstellen und mit den POST Werten vergleichen:

$captcha = new Zend_Captcha_Figlet(array(
	'name'    => 'captcha',
	'wordLen' => 4,
	'timeout' => 300,
));

if ($captcha->isValid($_POST['captcha'], $_POST)) {
    echo 'Validated!';
}

Das wars auch schon, viel Spaß mit Zend_Captcha als Standalone Lösung!

Über den Autor

Kevin

Ich bin ein Tech Geek & Developer der Generation C64, begeistere mich für Open Source Software, lese gerne Bücher, springe aus Flugzeugen, halte die Luft beim Apnoetauchen an, hebe beim Kraftsport schwere Sachen hoch und übe seit Jahren das bloggen ... mehr erfahren

Kommentar hinzufügen

Kevin Papst Freiberuflicher Software Entwickler

Rubriken

Stichwörter

Get in touch