gpt4 book ai didi

php - php ://input is not equal to the data parsed and placed in $_POST中的数据

转载 作者:搜寻专家 更新时间:2023-10-31 21:13:09 27 4
gpt4 key购买 nike

我正在解决 Wordpress 中的这个奇怪错误,我不知道 wordpress 是如何工作的,但我跑了一个小时试图隔离问题并找出问题的根源。

原来问题是因为 $_POST 没有正在请求的数据,所以这个东西没有更新。

在我从浏览器访问的文件顶部,在任何其他代码之前,我执行了以下操作:

echo file_get_contents("php://input");
print_r($_POST); exit();

我看到 wordpress 使用 $_POST 作为一个包罗万象的全局并写入它。我想也许 wordpress 会将数据踢到某个地方,但我找不到。无论如何,这是在文件的顶部,在任何其他事情发生之前..我认为在此之前甚至不可能修改变量

输出是

widget-text%5B3%5D%5Btitle%5D=Test&widget-text%5B3%5D%5Btext%5D=THISISATEST&sidebar=sidebar-1&sidebar-1_position=1&sidebar-2_position=&sidebar-3_position=&sidebar-4_position=&sidebar-5_position=&savewidget=Save+Widget&widget-id=text-3&id_base=text&multi_number=3&_wpnonce=36852083b6&_wp_http_referer=%2Fwp-admin%2Fwidgets.php%3Fmessage%3D0%26editwidget%3Dtext-3%26sidebar%3Dsidebar-1%26key%3D0
Array
(
[widget-text] => Array
(
[3] => Array
(
[title] => Test
)

)

[sidebar] => sidebar-1
[sidebar-1_position] => 1
[sidebar-2_position] =>
[sidebar-3_position] =>
[sidebar-4_position] =>
[sidebar-5_position] =>
[savewidget] => Save Widget
[widget-id] => text-3
[id_base] => text
[multi_number] => 3
[_wpnonce] => 36852083b6
[_wp_http_referer] => /wp-admin/widgets.php?message=0&editwidget=text-3&sidebar=sidebar-1&key=0
)

url_解码:

widget-text[3][title]=Test&widget-text[3][text]=THISISATEST&sidebar=sidebar-1&sidebar-1_position=1&sidebar-2_position=&sidebar-3_position=&sidebar-4_position=&sidebar-5_position=&savewidget=Save Widget&widget-id=text-3&id_base=text&multi_number=3&_wpnonce=36852083b6&_wp_http_referer=/wp-admin/widgets.php?message=0&editwidget=text-3&sidebar=sidebar-1&key=0Array

注意在原始数据中,widget-text[3][text]=THISISATEST 是如何存在的。但是 $_POST['widget-text']['3']['text'] 是未定义的。

我查看了 phpinfo,但找不到任何相关设置。我使用的是 PHP 版本 5.3.8、Apache 2,我在 AWS 上运行 suse。

有没有人对如何使 $_POST 正确解析原始数据有任何想法?

最佳答案

这确实很奇怪。可能是 PHP 中的错误或配置/扩展问题。

  1. 尝试更改配置变量 max_input_nesting_levelmax_input_varsmax_input_time。如果您不确定值,请尝试使用默认值。检查PHP documentation page查找默认值及其含义。

  2. 如果您正在运行 suhosin 扩展程序,请尝试禁用它并查看是否有帮助。还有所有 suhosin.post.* configuration keys看起来很有趣。

  3. 谷歌搜索揭示了类似的问题:one , two .

  4. 尝试通过 $_REQUEST 访问它 - $_REQUEST['widget-text']['3']['text']

无论如何,经过一些谷歌搜索后,这似乎发生在 PHP 5.3.8 中。所以升级可能是另一种选择。

关于php - php ://input is not equal to the data parsed and placed in $_POST中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14710608/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com