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

标签 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. 直到一切正常 > 脚本保存数据并显示大的 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/

相关文章:

zend-framework - Zend 框架 : Can you do ACL without the plugins directory?

javascript - 尝试使用动态创建的输入元素序列化表单,但未发布元素的值

forms - Google Script - 根据响应将新提交移动到另一个工作表

php - 拉维尔 |检索具有关系且特定 ID 除外的集合

php - 需要帮助从整个博客页面 html 中提取特定段落文本和图像

php - Zend Framework 2 - 整数形式验证

php - MySQL 中的算术运算

php - Symfony 4,从 Controller 获取.env参数,这可能吗?如何?

php - Zend Framework 1.10.7 电话验证器

javascript - 如何避免使用简单的 html 表单提交进行重定向?