[英]Server-side validation and form action
我有一个页面(称为form.php ),其中包含供用户填写的表单。 提交表单后,我想使用服务器端脚本对其进行验证(如果需要的话,可以将其称为validate.php ,尽管如果更好的话,代码也可以放在其他页面之一中)。 如果表单的任何部分未能通过验证,我想以用户需要修复的字段突出显示为form.php 。 如果表单通过了验证,那么我想转到另一个页面success.php 。
我应该将哪个页面放入<form>
元素的“ action”属性中,从该页面转到另一个页面的最佳方法是什么?
有很多答案,这有点风格。 我会发布form.php
> form.php
。 如果通过验证,则可以显示success.php
的内容;如果失败,则可以再次显示具有更新值的相同表单。 如果更新的URL是应用程序工作流程的关键,则在验证成功之后,您始终可以使用URL重定向。
我的动作应该是form.php(与显示页面相同)。 在PHP中,检查请求是GET还是POST。 如果是GET,则只需显示空白表格。 如果是POST,请验证响应,如果有效,则将REDIRECT重定向至success.php。 如果无效,请再次渲染表单(form.php),并在行内突出显示错误。
我建议Magento使用的方法。
您的控制器中有一个显示表单的formAction方法,然后是另一个处理表单提交的formPostAction操作。
例如,如果验证失败,则应创建一条正确的错误消息,然后将包含刚提交的表单数据的数组存储在会话中,然后重定向到表单页面。
formAction()方法应具有一定的逻辑以处理会话中的数据,清除曾经用于输出的数据,以避免安全问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.