【问题标题】:Server-side validation and form action服务器端验证和表单操作
【发布时间】:2011-11-06 20:28:10
【问题描述】:

我有一个页面(称为 form.php),其中包含一个供用户填写的表单。提交表单后,我想使用服务器端脚本对其进行验证(如有必要,将其称为 validate.php,尽管如果这样更好,代码也可以进入其他页面之一)。如果表单的任何部分验证失败,我想回到 form.php 并突出显示用户需要修复的字段。如果表单通过验证,我想转到另一个页面,success.php

我应该将哪个页面放入<form> 元素的“action”属性中,从该页面到其他页面的最佳方式是什么?

【问题讨论】:

  • 你解决了吗?我们的任何答案都有帮助吗?
  • 事实证明,即使我希望在我提出问题时立即需要答案,但我正在使用的另一个开发人员仍然没有为我准备好后端脚本然而。我没有忘记这些答案,我打算尽快尝试...感谢大家的耐心等待。

标签: php html validation


【解决方案1】:

对此有很多答案,这有点风格。我会发布form.php -> form.php。如果它通过验证,那么它可以显示success.php 的内容,如果它失败,它可以用更新的值再次显示相同的表单。如果更新后的 URL 是您的应用程序工作流程的关键,您始终可以在验证成功后使用 URL 重定向。

【讨论】:

    【解决方案2】:

    我希望操作是 form.php(与显示页面相同)。在 PHP 中检查请求是 GET 还是 POST。如果是 GET,则只需显示空白表单。如果它是一个 POST 验证响应,如果它是有效的 REDIRECT 到 success.php。如果它无效,请再次渲染表单(form.php),并在内联突出显示错误。

    【讨论】:

      【解决方案3】:

      我建议 Magento 使用的方法。

      您的控制器中有一个显示表单的 formAction 方法,然后是另一个处理表单提交的操作 formPostAction。

      例如,如果验证失败,您应该创建一个适当的错误消息,然后在会话中存储一个包含刚刚提交的表单数据的数组并重定向到表单页面。

      formAction() 方法应该有一些逻辑来处理会话中的数据,清理那些曾经用于输出的数据,以避免安全问题。

      【讨论】:

        猜你喜欢
        • 2011-10-17
        • 2013-01-10
        • 2013-04-16
        • 1970-01-01
        • 2018-06-24
        • 1970-01-01
        • 2012-12-19
        • 1970-01-01
        • 2022-10-07
        相关资源
        最近更新 更多