在开发表单以满足以下要求时,如何组织代码?

时间:2011-01-22 18:03:40

标签: php forms architecture

我只是想弄清楚为表单布置架构以满足以下要求的正确方法:

  1. 表单必须具有服务器端验证。
  2. 如果用户在domain.com/register上填写表单并且表单未通过服务器端验证,则应将这些表单带回domain.com/register,并显示错误。
  3. (从第2点开始)如果用户被带回domain.com/register以修复验证错误,则应自动显示已输入输入的数据。
  4. 如果用户在表单页面上单击后退或前进,浏览器不应抛出“确认表单重新提交”警告。
  5. 我对表单提交应该发布到哪里感到困惑。 domain.com/register上的表单是否应该发布到仅处理验证的其他页面?如果是这样,我如何将验证错误和输入数据传递回domain.com/register?

    或者,表格应该张贴到自己身上吗?如果是这样,如何在单击后退或前进按钮时阻止浏览器抛出“确认表单重新提交”警告?

1 个答案:

答案 0 :(得分:0)

接近这一点的逻辑方法(尝试将所有相关项目尽可能地保持为本地化)将使用单个页面,其顶部附近的“模式”switch statement具有“更新”案例在其中包含您的验证码。

在表单中,您只需发布到您所在的同一页面,但是您将在名为“mode”的表单中添加一个隐藏字段,其值为“update”。因此,当提交表单时,执行将流入switch语句的“update”情况,您可以执行所需的验证。

如果验证成功,您通常会转到另一个页面(通过使用header('Location: ...');后跟exit();)并且如果验证失败,执行将继续沿着页面继续执行您应输出验证期间发生的错误。