• ベストアンサー

php8の配列上限

こんにちは 【環境】 Almalinux 9.3 PHP 8.2.15 apache 2.4.57 ウェブページでphpを使ってデータ入力画面を作っています。 250件程度のデータですが、データを登録して次のページに行くと125件分しかデータが送られていません。 特に変わったことはせず、php.iniもほぼデフォルトのままです。 上限を探ってみたのですが、実質メモリー量に依存で数値としては無いという情報を得ました。 結構シンプルに作っているので、原因がわかりません。 すみませんが、対応方法をご存じの方は教えてください。 ----簡易サンプル-------- <?php echo "<form method='POST' action='tourokku.htm'>\n"; echo " <input type="button" value="保存" onclick="location.href='touroku.htm'"><br />\n"; echo " <table border=1>\n"; echo " <tr><td>名前</td><td>電話番号</td><td>設問1</td><td>設問1</td><td>設問2</td><td>設問3</td><td>設問4</td><td>設問5</td><td>設問6</td><td>設問7</td></tr>\n"; for ($a=0;$a<250;$a++) { echo " <tr>\n"; echo " <td><input type='text' name='namae'></td>\n"; echo " <td><input type='text' name='tel'></td>\n"; for ($b=0;$b<7;$b++) { echo " <td><input type='number' min=0 name='s" . $b . "[" . $a . "]'></td>\n"; } echo " </tr>\n"; } echo "</form>\n"; ?> ----------- 抜粋版なのでこのまま実行するとおかしいかもしれませんが、雰囲気が伝わればと。。 上の値を入れて次のページに移動してphpinfoで値を確認すると、 $_POST['s0'] array( [0] => 1 [1] => 2 : : [124]=125 ) と、124番以降の値は前ページより引き継いでくれません。 メモリーの上限かと思い、php.iniの memory_limit = 128M -> 1024M post_max_size = 8M -> 200M 等、関係ある値を上げてみましたが効果はありませんでした。 できれば300件ぐらいまでは上げたいと思います。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

max_input_vars の制限に引っかかっているような気がします。 https://blog.soln-sns.net/workaround-for-max_input_vars-limit/

y_usijima
質問者

お礼

ありがとうございました。 どうしてもこの手のページを検索できずに困っていました。「配列」で調べていたせいでしょうね。「要素数」で検索したら見つかっていたかも。結果論ですが。 ともあれ、本当に助かりました。

Powered by GRATICA

関連するQ&A