Suche
  • Programmierung, Wordpress, Serveradministration
  • Alles aus einer Hand, von freundlichen IT Experten aus Berlin
Suche Menü

Zend_Captcha ohne Zend_Form

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!

Autor: Kevin

Hallo lieber Leser! Ich stehe hinter Keleo, bin Softwareentwickler und freier IT Berater und blogge hin und wieder über Themen die mir im Berufsleben begegnen. Sollte Dir der Artikel geholfen haben, dann hinterlasse mir doch ein Kommentar. Wenn Du mehr über mich erfahren willst, folge dem Link in .

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.