Ограничение PHP XML – ограничение $_POSTPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ограничение PHP XML – ограничение $_POST

Сообщение Anonymous »

Я пытаюсь сохранить очень большую форму в базе данных SQL как XML.
Форма создается на основе XML-файла, который загружает пользователь, поэтому размер формы неизвестен. Все работает отлично, если только пользователь не загрузит файл, содержащий более 832 элементов. Форма генерируется нормально, но вывод формы в XML заканчивается сразу после 832-го элемента.
Форма выглядит следующим образом. Этот код равен одному элементу в XML-файле. $_POST[имя] и $_POST[тип] устанавливаются в начале формы.
Код 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')");
}
Код повторяется 25089 раз. Всего 18000 раз, но вывод останавливается на 832.
Вот пример вывода, сокращенного до последнего.

Код: Выделить всё

  
1
1
42
13
801PH
0
0
0
0
5


1
1
42
14
801PH
0
0
0
0
8


Это был XML-документ с 1300 элементами, поэтому 468 элементов отсутствуют.
Похоже, это проблема, связанная с php_value max_input_vars 5000 в php.ini, которую я не могу изменить. Итак, вопрос в том, как легко объединить все значения элемента в одну переменную $_POST?

Подробнее здесь: https://stackoverflow.com/questions/325 ... limitation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»