繁体   English   中英

服务器端验证和表单操作

[英]Server-side validation and form action

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

我应该将哪个页面放入<form>元素的“ a​​ction”属性中,从该页面转到另一个页面的最佳方法是什么?

有很多答案,这有点风格。 我会发布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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM