我只是想弄清楚为表单布置架构以满足以下要求的正确方法:
我对表单提交应该发布到哪里感到困惑。 domain.com/register上的表单是否应该发布到仅处理验证的其他页面?如果是这样,我如何将验证错误和输入数据传递回domain.com/register?
或者,表格应该张贴到自己身上吗?如果是这样,如何在单击后退或前进按钮时阻止浏览器抛出“确认表单重新提交”警告?
答案 0 :(得分:0)
接近这一点的逻辑方法(尝试将所有相关项目尽可能地保持为本地化)将使用单个页面,其顶部附近的“模式”switch statement具有“更新”案例在其中包含您的验证码。
在表单中,您只需发布到您所在的同一页面,但是您将在名为“mode”的表单中添加一个隐藏字段,其值为“update”。因此,当提交表单时,执行将流入switch语句的“update”情况,您可以执行所需的验证。
如果验证成功,您通常会转到另一个页面(通过使用header('Location: ...');
后跟exit();
)并且如果验证失败,执行将继续沿着页面继续执行您应输出验证期间发生的错误。