重定向处理时如何通过 $_POST 将表单错误发送回表单

Posted

技术标签:

【中文标题】重定向处理时如何通过 $_POST 将表单错误发送回表单【英文标题】:How to send form errors back to the form via $_POST when redirected for processing 【发布时间】:2011-12-13 14:09:11 【问题描述】:

我在contact.php 有一个表格,里面有大量的输入。

此表单将使用 php mail() 函数邮寄,前提是验证码正确且输入值遵循正则表达式。

表单的动作是"mailer.php",方法是post

mailer.php上,检查验证和验证码验证等。但如果用户输入错误的验证码,他们将被重定向回表单。

他们刚刚输入的所有数据都被清除了!

我曾经使用查询字符串和$_GET 数组进行重定向。

但我不能为这个表单这样做,因为有很多数据,包括许多文本区域等。

那么我如何在出错时将此数据发送回表单?

【问题讨论】:

Form values should not clear 的可能重复项 【参考方案1】:

您可以将用户输入信息存储为$_SESSION 变量。不要忘记包含session_start(); 来启动会话。

【讨论】:

【参考方案2】:

你应该像这样设计流程:-

    form(接受一组默认值) 当用户提交表单到 mailer.php 必要的检查 如果成功,继续发邮件 完成然后重定向到任何地方 如果失败 再次要求表单 将 $_POST 作为默认值传递

基本上,失败时不要重定向(仅在成功时)

【讨论】:

以上是关于重定向处理时如何通过 $_POST 将表单错误发送回表单的主要内容,如果未能解决你的问题,请参考以下文章

提交后保留$ _POST数据,同时删除重定向URL中的index.php

如何在通过 ajax 执行后期操作时克服 CORS 重定向问题?

提交表单时重定向到错误的路线

通过Vuejs调用时如何使Nodejs重定向工作

使用 Azure AD 在两者之间登录时,如何将查询字符串参数或 POST 数据传递到重定向站点?

Flutter/Dart http POST 重定向通过 GET 发送正文