PHP 5.3.8 と Apache 2.0 を使用しています。私も Symfony 2 を使用していますが、それはスクリプトが失敗する場所ではありません。私は配列変数を持つフォームを持っています:
<form action="/app_dev.php/admin/position/create" method="post">
<input type="text" id="po_name" name="po[name]" required="required" maxlength="50">
<input type="text" id="po_role" name="po[role]" required="required" maxlength="20">
</form>
app_dev.php ファイルで直接 (Symfony を問題から除外するため)、次のようにします。
echo file_get_contents("php://input"); // outputs: po%5Bname%5D=Developer&po%5Brole%5D=ROLE_USER
var_dump($_POST); // outputs: array(1) { ["po"]=> array(1) { ["name"]=> string(9) "Developer" } }
die();
基本的に、配列の最初の変数のみを保持します。変数の名前を po[role] から ba[role] に変更すると、$_POST の出力は次のようになります。
array(1) {
["po"]=> array(1) { ["name"]=> string(9) "Developer" },
["ba"]=> array(1) { ["role"]=> string(9) "ROLE_USER" }
}
この問題を引き起こす可能性があることがわかった典型的な問題は、次の php.ini 構成が原因です。私の値も示します。
max_execution_time = 30
max_input_time = 60
max_input_nesting_level = 64
max_input_vars = 1000
post_max_size = 8M
upload_max_filesize = 2M
memory_limit = 128M
これらの値は妥当であり、問題の原因ではないと思いますが、100% 確実とは言えません。
同様の問題を引き起こす可能性があることを読んだので、suhosinをインストールしていません。
これもこの問題に似ていますが、示されている解決策では、HttpFoundation Symfony コンポーネントを書き直す必要があります。
また、フォームは Symfony によって自動的に生成され、これは PHP が処理できる基本的な機能のように見えるため、配列なしでフォーム変数を書き換える必要はありません (例: po[name] を po_name に)。
誰かがこの問題について何か考えがありますか?
PS: これは、こちらで説明されている問題に似ています。さらに、同じバージョンの Suse (SUSE Linux Enterprise Server 11) で問題が発生します。