如何 POST 从恢复的会话中形成数据?

How to POST form data from restored session?

我使用名为 "Session Manager" 的 Firefox 插件来保存和恢复会话。我有简单的 php + html 形式:

<form id="form_id" enctype="multipart/form-data" method="post" action="upload.php">
    <input id="name$key" type="text" placeholder="Name" name="name[]" value="$name">
    <input type="file" name="fileToUpload[]" id="fileToUpload$key">
    <input id="submit" name="submit" type="submit" value="Submit">
</form>

当我使用 "Session Manager" 恢复表单输入数据时,我可以看到我需要的所有数据。当我点击 "Submit" 按钮时,数据为空 $_POST

我该怎么做才能不丢失这些数据?

也许使用一些 JQuery 或 session_start(); $_SESSION

Firefox 中的会话管理器插件与 PHP 会话完全无关。同一个词,完全不同的意思。

Firefox 会话是您的浏览器选项卡和它们正在访问的网站。 PHP 会话与特定网站上的用户会话相关。

很可能您在表单中看到的数据 "saved" 只是仅保存在 Firefox 中的字段数据,其唯一目的是使数据 re-entry 更快。它实际上还不是 "in" 表单字段,而是保存在 Firefox 中(仅保存在 Firefox 中,而不是在网站上),以便更轻松地 re-entry 频繁输入的数据。

当您失去与网站的连接时,您会丢失字段中键入的数据。刷新页面会丢失字段中键入的数据。这个没有work-around,就是这样。

如果您还有其他问题,请在此答案下方的评论中提问。

编辑:

Re-thinking,可以使用 javascript/jQuery(请,jQuery)解决方案来实现某种解决方案,该解决方案涉及在字段退出时进行检测(blur()) 并随后抓取数据并保存在 localStorage 中。

参考文献:

https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API

http://www.w3schools.com/html/html5_webstorage.asp

When is localStorage cleared?

What is the max size of localStorage values?

Firefox add-on "Session Manager" 如果 html <form> 设置了属性 enctype="multipart/form-data",则似乎无法正常工作。如果您想通过 POST 发送一些文件,请结合使用 <form> 属性 enctype="application/x-www-form-urlencoded" 和 php copy()。那不是干净的解决方案。也许还有 enctype="multipart/form-data" 的其他解决方案,也许一些 accept-charset 形式的过期可以给你更好的结果。