例如,我知道 Zend Framework 具有使用验证器创建表单元素的功能。但是现在,假设用户输入了完全无效的垃圾数据。接下来会发生什么?比方说JS部分出错或者JS被禁用,服务端收到垃圾数据。
“大”PHP 框架如何从概念上处理这个问题?如果您知道,请提及框架并进行描述。这会很有帮助。
错误消息是如何返回到表单的,又是如何显示的?这在技术上是如何完成的?
在我看来,理论上应该是这样的:
- 用户输入垃圾
- 用户提交表单(JS 验证失败、JS 停用等)
- PHP 脚本接收垃圾输入
- PHP 脚本验证服务器端的垃圾输入。所有字段 = FALSE,GARBAGE。
- 每次字段验证失败时,PHP 脚本都会将输入错误消息写入数组。
- 错误消息数组是一个映射(关联数组),其中键是表单元素名称
- 由于输入错误,脚本再次加载表单
- 表单脚本具有显示错误消息数组中的字段输入错误的所有逻辑
- 用户看到漂亮的错误消息并重新输入垃圾。
- 一遍又一遍。
- 直到一切正常 > 脚本保存数据并显示大的 THANKS 消息。
我不知道其他的,但如果有,我需要知道 ;-)
有些事情告诉我这不是最好的解决方案。
最佳答案
首先,除非您使用支持 Dojo 的表单,否则 Zend Framework 与 javascript 无关。 JS 验证要么由您自己编写,要么绑定(bind)到支持 Dojo 的表单中。
验证包括遍历每个 ZFE 并检查它的验证器。如果发生错误,它将作为错误消息存储在 ZFE 中。当您再次显示表单时,如果您使用默认的装饰器,那么您将加载 Zend_Form_Decorator_Errors,它用错误消息“装饰”元素。
我建议从 isValid() 方法开始阅读 Zend_Form 的源代码。阅读和查看正在发生的事情非常简单。
关于php - 流行的 PHP 框架如何处理表单输入错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2036947/