服务器端验证和表单操作

时间:2010-12-23 15:48:29

标签: php html validation

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

我应该在<form>元素的“action”属性中添加哪个页面,以及从该页面获取其他页面的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我建议使用Magento的方法。

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

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

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