我的帖子数据来自Captcha适配器如下:
["ffck"] => array(2) {
["id"] => string(32) "661db3996f5e60e71a60671496ec71a9"
["input"] => string(3) "dys"
}
我的代码现在正在尝试验证,但总是失败:
Zend_Loader::loadClass('Zend_Captcha_Image');
$captcha = new Zend_Captcha_Image();
$captchaArray = array(
'id' => $post['ffck']['id'], // valid id
'input' => $post['ffck']['input'] // valid input
);
if ($captcha->isValid($captchaArray)) { // FAILs!!!!
echo "working";
} else {
echo "fails";
}
Zend_Debug::dump($post) ; // 100% valid ....
exit;
如何解决?或者导致这种情况失败的原因是什么?
答案 0 :(得分:1)
检查生成的html,你应该只有两个输入:name =“captcha [id]”和name =“captcha [input]”,如果你有第三个名字=“captcha”,那么你必须在渲染之前从captcha元素中删除viewhelper。
例:
$form->getElement('captcha')->removeDecorator("viewhelper");
答案 1 :(得分:0)
传递给CAPTCHA对象的数组应该只包含两个键,所以请尝试:
$captchaArray = $post['ffck']
而不是你目前正在做的事情。
但是您发布的代码无论如何都无效,因为您从未生成CAPTCHA图像。我想你已经减少了代码示例以保持问题简短,所以如果上述修复不起作用,请编辑你的例子以包括生成CAPTCHA图像的方式和位置。