未验证POST提交时保存表单数据

时间:2010-08-26 00:16:34

标签: php forms validation post

如果存在验证错误,我需要在php中验证表单并在视图中显示一些错误消息。问题是,一旦提交表单,将用户发送回页面将清除所有已完成的表单字段。有没有一种简单的方法可以不丢失未经验证的表单数据?

我能想出的唯一解决方案是对$_POST变量进行逆向工程,但我想要一种更优雅的方法来实现它。

3 个答案:

答案 0 :(得分:2)

不要将用户发送到任何地方,而是将表单重新渲染到您所在的位置,使用输入的值预先填充表单。那将是最常见的方法。

第二种方法是将值存储在session variables中,但如果项目结构不允许第一种方法,这应该是最后的选择。

答案 1 :(得分:2)

在客户端验证。
如果您必须在服务器端进行验证,请使用要验证的元素向服务器发出ajax调用(因此您不必刷新页面)。进行所需的验证并将答案返回页面(有效与否) 如果答案有效,您可以继续(注意:如果您需要继续的所有元素也是经过验证的元素,您可能无需在验证后返回页面。)
如果它无效,答案应返回无效元素(可能还有每个错误消息),以便您可以显示所需的错误消息。

答案 2 :(得分:1)

如果在用于准备表单的php代码中,总是将字段值设置为$ _POST数组中存在的字段值,那么在验证代码中,您可以简单地有条件地包含该表单文件,并且它将使用用户值呈现自身。当您第一次呈现表单(空表单)时,$ _POST将不包含具有字段名称的元素,并且表单将为空。