POSTed 数组保持它们的值

Posted

技术标签:

【中文标题】POSTed 数组保持它们的值【英文标题】:POSTed arrays keep their values 【发布时间】:2015-03-12 04:26:06 【问题描述】:

今天我注意到我的一个 Wordpress 安装的行为方式非常奇怪:每当我从仪表板更新帖子时,它的一些额外输入会保留它们已有的值(它们都是多维数组)。例如:

[post.php?post=123&action=edit]

<input type="text" id="field_a0b" class="text" name="fields[a][0][b]" 
value="Current value" placeholder="">

如果我手动编辑该帖子(作为最终用户),将Current value 更改为New value,然后点击更新 按钮,$_POST['fields']['a'][0]['b'] 仍将包含Current value - 不是New value 如我所料。

这只发生在那些输入数组上。另外,如果我将name="fields[a][0][b]" 更改为随机的东西,比如name="fields[a][0][bbbbbbbb]",然后打印那个东西,那么我会得到我在输入字段中输入的值!

我已经破解了 Wordpress 文件以从多个位置(甚至来自 load.php)转储数据,但仍然没有成功。

不确定这是否重要,但生成这些 html 输入的插件称为 ACF(高级自定义字段)。

【问题讨论】:

没人?我尝试在php.ini(甚至post_max_sizeupload_max_filesize)中增加max_input_nesting_levelmax_input_vars,但我仍然得到相同的结果:( 我认为您在这里没有展示足够的代码上下文。表单发布中是否涉及任何 javascript 没有 JavaScript,没有浏览器缓存。严格来说是 PHP,服务器端的怪异。 【参考方案1】:

过去我发现,如果我要重用一个数组,我应该在每次使用完它时取消设置该数组。这样,您无疑会清除该数组以供重用。

【讨论】:

以上是关于POSTed 数组保持它们的值的主要内容,如果未能解决你的问题,请参考以下文章

js 去掉数组中重复的值 保持唯一性

如何对多个 mysql foreach 数组进行排序并需要它们在 php 中保持一致?

在递归期间难以保持变量的值

将 3 个不同数组的所有值转换为它们的绝对值并返回所有 3 个的方法只保持第一个数组而不是接下来的两个

React 组件有啥方法可以保持之前渲染的值吗? [复制]

数组元素保持堆叠在数组的第一个位置