重定向处理时如何通过 $_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 重定向问题?