我是Zend Framework的新手,我在使用Zend_Form创建编辑表单时遇到问题。
我的问题是我需要在编辑期间存储条目ID,我已经看到一些使用隐藏表单字段的示例,但是隐藏字段可以由用户操作。
那么:我如何设置一个由$form->populate($data);
填充的表单字段,并在提交请求后可用,但不以任何方式对用户进行editabel /可见?
感谢您的帮助!
答案 0 :(得分:3)
我不确定是否真的有意义隐藏价值。
请考虑以下事项:
因此,如果你把ID放在表格中,那真的不重要:
答案 1 :(得分:0)
你想隐藏什么样的数据?
数据应该在post或get.if你不把你的数据放在表单中,那么你将不得不使用不如POST安全的GET。
如果你有一些数据并且你不希望用户看到这些数据,那么你不应该把这些数据放在一个表格中。你可以使用s submitted values.lets suppose your hidden field is user
的密码存储和检索隐藏的数据。你不需要发送密码客户端编辑表单时返回客户端。您可以根据用户提交的名字和姓氏操作控制器中的密码。
如果您仍然坚持,您可能想尝试使用ZF加密数据并回显您的值并将加密数据设置为隐藏的表单元素。
答案 2 :(得分:0)
Zend_Form使用您指定的表单元素生成HTML表单元素。因此,它的元素功能缩小为简单的HTML形式。
隐藏表单元素用于传递用户不应手动输入的数据。但正如你自己所说,没有保证它不会被篡改。因此,使用隐藏的表单值不会提供任何安全性。
大多数情况下,您最好使用服务器端值(如存储在会话中)来引用要保护用户的值。
我建议您将ID保存在会话值中,然后您可以在隐藏表单字段中使用会话密钥。这样用户无法更改目标ID。但是,您无法在一步中使用$ form-> populate($ values)。您必须使用其他步骤设置目标值: