Php 如何临时保存HTML POST数据以供以后使用?

Php 如何临时保存HTML POST数据以供以后使用?,php,mysql,Php,Mysql,我将注册表分成3个单独的php页面,分别为步骤1、步骤2和步骤3。我想知道如何临时存储第1页和第2页的表单数据,直到用户完成第3步,然后在用户完成第3页表单后单击第3页上的提交时,检索并将所有3个表单的数据一起发送到数据库 我应该使用cookies和/或会话和数据库进行临时存储吗?我看到有人建议使用隐藏的html输入,但我不明白 谢谢 您可以使用PHP将输入数据变量存储到会话变量中$\u session最好将其保存在会话/cookie中。请确保在提交后将其删除,否则每次用户来到页面时,所有内容都

我将注册表分成3个单独的php页面,分别为步骤1、步骤2和步骤3。我想知道如何临时存储第1页和第2页的表单数据,直到用户完成第3步,然后在用户完成第3页表单后单击第3页上的提交时,检索并将所有3个表单的数据一起发送到数据库

我应该使用cookies和/或会话和数据库进行临时存储吗?我看到有人建议使用隐藏的html输入,但我不明白


谢谢

您可以使用PHP将输入数据变量存储到会话变量中
$\u session

最好将其保存在会话/cookie中。请确保在提交后将其删除,否则每次用户来到页面时,所有内容都将被旧数据填充。他们所说的隐藏输入是指,在每一步中,您的页面都将检索从上一页保存的数据,然后将它们隐藏在页面上,就像
一样,在大多数情况下,隐藏输入就可以了

用法: 例如,用户在步骤2中发布了“name=David”。 您的服务器收到该表单数据,应在步骤3中插入此行:

<input type="hidden" name="name" value="David">

当用户完成步骤3时,您的服务器将再次收到“name=David”,这样您就可以作为一个整体处理所有数据,而无需在服务器上存储任何数据


如果第1步和第2步中的数据没有第3步就没有用处,请执行此操作。

最好的方法是使用会话/cookies存储步骤变量,但在每个页面中,您也可以声明“”,其中变量是通过步骤的值的名称。这是一种维护所有步长值的方法。我希望我所说的是可以理解的:)会话变量“$\u Session['variable']='value'”在您关闭浏览器之前是可用的,因此您可以通过“$\u Session['variable']”在每个页面上访问它们。Cookie变量的工作方式相同,但由于“欧盟立法”,您必须要求用户接受它们。因此,会话变量是最好的解决方案。提交表单后,您可以像“unset($_SESSION['variable'])”或“SESSION_destroy()-擦除所有会话变量”这样“擦除”它们。PHP不通过设置cookies来实现会话处理吗?因此,使用会话也需要获得Cookie的同意。我不太确定,但法律中有一些例外情况,也许这有助于澄清:通过“会话/Cookie”,我假设您的意思是将数据存储在会话内存中的服务器上,并通过存储在cookie中的标识符将客户机与该会话关联?在这种情况下,我不确定我是否理解警告“*否则每次……”。或者您是否建议将数据本身直接存储在cookie中?在这种情况下,你的警告是有意义的,但是如果你能解释为什么你认为这样的设计是“最好”的话,我会很感激的。您熟悉会话或cookie吗?我建议在这种情况下使用session,因为session默认情况下保存数据的时间很短;我只是要求你对你的回答做出澄清,因为(在我看来)它似乎模棱两可。谢谢,这解释了我到底需要什么。非常感谢!:)填充隐藏的输入时,请小心避免数据受到XSS攻击。还要注意,这种设计可能会在处理大量表单数据和/或慢速网络连接(例如移动设备)时表现不佳。我会将其与上述方法之一结合使用。