【问题标题】:Losing $_POST data after a submitted multipart/form-data form reload(Firefox)提交的多部分/表单数据表单重新加载后丢失 $_POST 数据(Firefox)
【发布时间】:2018-05-29 08:52:03
【问题描述】:

在提交的 multipart/form-data 表单重新加载后丢失 $_POST 数据。

我有以下表格:

<?php var_dump($_POST, $_FILES); ?>

<form method="POST" enctype="multipart/form-data">
    <input type="text" name="name1" value="name1"/>
    <input type="text" name="name2" value="name2"/>
    <input type="file" name="file" value=""/>
    <input type="text" name="name3" value="name3"/>
    <input type="text" name="name4" value="name4"/>
    <button type="submit">Submit</button>
</form>

问题是,当我第一次提交此表单时,我选择了一个文件(可能是 2b - 3kb)

'name1' => string 'name1' (length=5)
'name2' => string 'name2' (length=5)
'name3' => string 'name3' (length=5)
'name4' => string 'name4' (length=5)

'file' => array (size=5) [...]

但是当我点击重新加载按钮时,我得到了这个:

array (size=2)
'name1' => string 'name1' (length=5)
'name2' => string 'name2' (length=5)

'file' => array (size=5) [...]

更像是file 之后的所有数据都丢失了。
我尝试不选择任何文件,提交表单并重新加载它,并没有丢失来自$_POST 的任何数据。
而且当我将name3name4 移动到file 上方时,它们的数据在重新加载后仍然存在。 我需要帮助。

在这里制作演示:https://vimeo.com/272339637

【问题讨论】:

  • 我已经复制了您的代码并尝试了自己。这不会发生在我身上。刷新后一切都保持不变。
  • 我在这里也试过ide.c9.io/chrys_u/stack
  • 那么现在你的var_dump又发疯了,因为你之前评论过并删除了你的问题。
  • 大声笑是的。不知道是不是浏览器会导致这个问题?
  • 我注意到它仅在 firefox 上发生。

标签: php forms firefox post php-7.1


【解决方案1】:

在我联系 Firefox 支持后,我似乎是 Firefox > v60.0 Forms 的一个已知问题。 Firefox form Issues 所以我现在最好的选择是将所有text 移到file 之上。例如:

<form method="POST" enctype="multipart/form-data">
    <input type="text" name="name1" value="name1"/>
    <input type="text" name="name2" value="name2"/>
    <input type="text" name="name3" value="name3"/>
    <input type="text" name="name4" value="name4"/>

    <input type="file" name="file" value=""/>

    <button type="submit">Submit</button>
</form>

【讨论】:

    猜你喜欢
    • 2011-01-09
    • 2013-03-06
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多