我正在研究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不喜歡,無論如何,它沒有工作 –