0

У меня есть значение, которое необходимо установить в форме для обработки, но я не хочу, чтобы пользователь мог редактировать это значение. Скрытый элемент будет в основном соответствовать моим потребностям, но я думаю, что умный пользователь может включить скрытое поле и изменить его.Как бы сделать тэг Zend_Form_Element_Hidden неизменным?

Есть ли валидатор или настройка в Скрытом элементе, который потребовал бы, чтобы представленное значение формы было таким же, как при визуализации формы?

Я не думаю, что setIgnore(true) подходит для моей ситуации, так как мне нужно Zend_Form читать эту переменную при обработке формы.

Также, насколько я знаю, setAttrib('readonly', true) не будет работать, так как это только параметр HTML, который может быть легко переопределен клиентом.

ответ

1

Вы не можете положиться на какие-либо данные, ПОЧТЕННЫЕ пользователем. Даже если бы был какой-то волшебный способ контроля формы, кто-то все еще мог подделать запрос POST на ваш URL-адрес отправки с другим значением для этого поля, если захочет. Лучше всего, скорее всего, сохранить значение в сеансе или, по крайней мере, сохранить значение в сеансе и сравнить его с представленным значением скрытого поля.

+0

Я надеялся, что у Zend Framework был волшебный элемент, который позволил бы мне установить это (вместо использования переменной сеанса). Я думаю, что вы правы, мне просто нужно обеспечить, чтобы переменная POST'd была здравомыслящей. –