Форма создается на основе XML-файла, который загружает пользователь, поэтому размер формы неизвестен. Все работает отлично, если только пользователь не загрузит файл, содержащий более 832 элементов. Форма генерируется нормально, но вывод формы в XML заканчивается сразу после 832-го элемента.
Форма выглядит следующим образом. Этот код равен одному элементу в XML-файле.
Код: Выделить всё
Код PHP для анализа формы в XML выглядит следующим образом
Код: Выделить всё
if($_POST['type'] == "PBS") {
$xml = new DOMDocument("1.0");
$root = $xml->createElement("data");
$root->setAttribute('name', $_POST['name']);
$root->setAttribute('type', $_POST['type']);
$xml->appendChild($root);
$i = 0;
$iP = 1;
$iL = 1;
$iD = 1;
$run = 1;
while($run == 1) {
$search = $iP;
$search .= $iL;
$search .= $iD;
if(isset($_POST[$search.'det'])) {
$id = $xml->createElement("ID".$i);
$root->appendChild($id);
$central = $xml->createElement("panel");
$centralText = $xml>createTextNode($_POST[$search.'panel']);
$central->appendChild($centralText);
$loop = $xml->createElement("loop");
$loopText = $xml->createTextNode($_POST[$search.'loop']);
$loop->appendChild($loopText);
$zone = $xml->createElement("zone");
$zoneText = $xml->createTextNode($_POST[$search.'zone']);
$zone->appendChild($zoneText);
$logicnumber = $xml->createElement("det");
$logicnumberText = $xml->createTextNode($_POST[$search.'det']);
$logicnumber->appendChild($logicnumberText);
$type = $xml->createElement("type");
$typeText = $xml->createTextNode($_POST[$search.'type']);
$type->appendChild($typeText);
$ir = $xml->createElement("ir");
$irText = $xml->createTextNode(xIt($_POST[$search.'ir']));
$ir->appendChild($irText);
$ok = $xml->createElement("ok");
$okText = $xml->createTextNode(xIt($_POST[$search.'ok']));
$ok->appendChild($okText);
$iok = $xml->createElement("iok");
$iokText = $xml->createTextNode(xIt($_POST[$search.'iok']));
$iok->appendChild($iokText);
$fr = $xml->createElement("fr");
$frText = $xml->createTextNode(xIt($_POST[$search.'fr']));
$fr->appendChild($frText);
$value = $xml->createElement("value");
$valueText = $xml->createTextNode($_POST[$search.'value']);
$value->appendChild($valueText);
$id->appendChild($central);
$id->appendChild($loop);
$id->appendChild($zone);
$id->appendChild($logicnumber);
$id->appendChild($type);
$id->appendChild($ir);
$id->appendChild($ok);
$id->appendChild($iok);
$id->appendChild($fr);
$id->appendChild($value);
$i++;
}
$iD++;
if($iD >= 250){
$iD = 1;
$iL++;
}
if($iL >= 9){
$iL = 1;
$iP++;
}
if($iP >= 10){
$iP = 1;
$run = 0;
}
}
$xml->formatOutput = true;
$mysqli->query("INSERT INTO kl_sks (customerID, user, date, data, status)
VALUES ('".addslashes($_POST['name'])."', '".$_SESSION[sesUser]."', '".time()."', '".$xml->saveXML()."', '1')");
}
Вот пример вывода, сокращенного до последнего.
Код: Выделить всё
1
1
42
13
801PH
0
0
0
0
5
1
1
42
14
801PH
0
0
0
0
8
Похоже, это проблема, связанная с php_value max_input_vars 5000 в php.ini, которую я не могу изменить. Итак, вопрос в том, как легко объединить все значения элемента в одну переменную $_POST?
Подробнее здесь: https://stackoverflow.com/questions/325 ... limitation
Мобильная версия