流行的PHP框架如何处理表单输入错误?

时间:2010-01-10 12:12:02

标签: php zend-framework forms validation

我知道例如,Zend Framework具有使用验证器创建表单元素的功能。但现在,让我们说用户输入完整的垃圾数据,这是无效的。接下来会发生什么?让我们说JS部分出错或JS被禁用,服务器接收垃圾数据。

“大”PHP框架如何处理这个概念?如果您知道,请提及框架并对其进行描述。这会有很大的帮助。

如何将错误消息返回到表单以及它们如何显示?这在技术上是如何完成的?

从我的观点来看,理论上它必须采用这种方式:

  1. 用户输入垃圾
  2. 用户提交表单(JS验证失败,JS已停用,等等)
  3. PHP脚本接收垃圾输入
  4. PHP脚本验证服务器端的垃圾输入。所有字段= FALSE,GARBAGE。
  5. 每次字段验证失败时,PHP脚本都会将输入错误消息写入数组。
  6. 错误消息数组是一个映射(关联数组),其中键是表单元素名称
  7. 脚本因输入错误而再次加载表单
  8. 表单脚本具有显示错误消息数组
  9. 中的字段输入错误的所有逻辑
  10. 用户看到漂亮的错误消息并重新输入垃圾。
  11. 一遍又一遍。
  12. 直到一切顺利>脚本保存数据并显示很大的THANKS消息。
  13. 我不知道其他,但如果有,我需要知道; - )

    有些东西告诉我这不是最好的解决方案。

1 个答案:

答案 0 :(得分:2)

首先,除非您使用支持Dojo的表单,否则Zend Framework与javascript无关。 JS验证可以由您自己编写,也可以绑定到启用Dojo的表单中。

验证包括迭代每个ZFE并检查它的Validator。如果发生错误,则将其作为错误消息存储在ZFE中。当您再次显示表单时,如果您使用的是默认装饰器,那么您将加载Zend_Form_Decorator_Errors,它会使用它的错误消息“修饰”该元素。

我建议从isValid()方法开始阅读Zend_Form的源代码。阅读并查看正在发生的事情非常简单。