我正在研究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_decoded:
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正确解析原始数据?
@ÁlvaroG.Vicario:在'$ _POST','小部件文本[3] [文字]'缺少,但它是在原'PHP://输入“数据。 –
啊,对不起,该阵列有两个键,其中一个键不见了。 –
没错。PHP似乎踢出任何第三级别的数组键,我试着编辑与检查员的形式,看它是否只是他们的关键“文本”哪些PHP不喜欢,无论如何,它没有工作 –