私はWordpressでこの奇妙なバグを解決していて、Wordpressがどのように機能するかはわかりませんが、問題を特定して問題の根本がどこにあるのかを確認するために1時間走り回りました.
$_POST には要求されたデータがないため、問題は更新されていないことが判明しました。
ブラウザーからアクセスしているファイルの先頭で、他のコードの前に、次のことを行いました。
echo file_get_contents("php://input");
print_r($_POST); exit();
wordpress は $_POST をキャッチオール グローバルとして使用し、それに書き込みます。ワードプレスがデータをどこかに追い出すのではないかと思ったのですが、それが見つかりませんでした。とにかく、これはファイルの先頭にあり、他の何かがまったく発生する前です..その前に変数を変更することさえ可能だとは思いません
そこからの出力は
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 が生データを正しく解析する方法について誰かアイデアがありますか?