Zend_Form_Element_Hash должен регенерировать каждый запрос. То, что вы описываете, это ваши токены не синхронизированы. Обычно это происходит с несколькими формами или с перенаправлениями / пересылками.
Если вы используете ajax где-то на странице, вы можете поместить это в действие контроллера (ближе к концу)
$ форма-> hash-> initCsrfToken ();
$ this-> view-> hash = $ form-> hash-> getValue ();
Затем, когда вы делаете вызов ajax, просто вытяните токен и замените токен в форме, используя селектор и .replaceWith (). Это то, как вы имеете дело с несколькими формами
В противном случае вы, вероятно, либо перенаправляете что-то, либо загружаете что-то дважды, и вам следует изменить прыжок в библиотеке Zend. Хоп - это то, сколько раз токен может быть запрошен до истечения срока его действия