我正确使用$ _POST ['var']吗?

时间:2012-08-07 17:13:30

标签: php forms post

所以我正在使用wordpress,但wordpress社区似乎对严格的PHP或其他任何东西都不太了解。

我有一个名为Gravity Forms的插件,我用它来创建一个非常复杂的表单/调查。但这笔交易是一个多部分形式,我不知道如何从第一个到第二个获得所有表单数据。

我可以通过查询字符串传递数据,但是我传递了25个字段的信息,因此它不适合我。

一旦提交了form1,我就可以将它重定向到第二页,其中包含一些代码,如

$foo = $_POST['field_1_1']; 

其中field_1_1是上一个表单中输入的名称?

我之前使用过$ _GET查询字符串,但我不确定我刚刚说明的例子是如何使用$ _POST

4 个答案:

答案 0 :(得分:1)

您可以在PHP中使用$_SESSION变量,这些变量在请求之间保留(不管您的PHP会话配置多长时间 - 通常是几个小时)

或者,您也可以(在网络使用方面效率不高)将旧表单数据输出到<input type="hidden">元素中。如果您打算这样做,我会考虑使用serialize函数

如果您在大规模生产环境中做某事,您可能还想查看内存缓存或redis数据库

您可能希望考虑的其他事情是使用JS在客户端进行分页,以便在填写完所有页面后提交表单

答案 1 :(得分:0)

是的,这是正确的用法。只需确保您的表单使用POST方法提交。

只需确保(与$_GET一样)用户输入不受信任。请务必清理它们以进行数据库交互。

答案 2 :(得分:0)

是的,请更改您的表单:

<form method="post" action="page_to_post_to.php" name="form1" id="form1">
    ....
</form>

您正在将method更改为post,将action更改为新页面。新页面是您可以从。

访问$_POST变量的页面

答案 3 :(得分:0)

如果您打算使用单独的表单,也许您会发现使用$ _SESSION超全局数组暂时在会话中保存$ _POST数据很有用。

或者您可以使用JavaScript分割长格式并将其发送到最终目的地。