Zend_Form_Element_Hash问题(文档不清楚?)

时间:2010-10-20 13:53:58

标签: php zend-framework

文档中写道,在表单中包含Zend_Form_Element_Hash元素就足够了,并且Zend_Form会自动处理CSRF保护。

我添加了这样的令牌:

$token = new Zend_Form_Element_Hash('security_token_against_csrf');
$token->setSalt($this->_helper->randomString());
$form->addElement($token);

但在提交任何带有此类令牌的表格后,我收到此错误:

The two given tokens do not match

我还需要在表单验证期间使用任何方法吗?

1 个答案:

答案 0 :(得分:3)

您是否尝试过将盐设置为定义明确(或至少可重复)的字符串?

当Zend_Form验证时,它需要从会话数据重新创建哈希,然后与提交的内容进行比较,如果它正在应用不同的盐,则会导致令牌不匹配。