NEW ИНФОРМАЦИЯ:
Я использовал функцию print_r
на $_REQUEST
и что-то очень странное происходит там. Некоторые значения корректно передаются GET, такие как значение в другой форме, которая переходит в «ИСТИНА». Это можно увидеть в выводе print_r
, но не записано в файл ... Тем не менее, вы не можете найти решение моей проблемы.Странная ошибка с Complex PHP Форма обработки
Я работаю на странице с большим количеством форм, которые загружаются по мере необходимости AJAX. Все это прекрасно работает, так как анализирует пары name: value и сохраняет их соответствующим образом.
Моя ошибка возникает, когда PHP анализирует запрос GET, отправленный AJAX, когда пользователь закончен, он только, кажется, извлекает значения из определенных полей.
Идея состоит в том, что пользователь может добавлять данные из любого числа форм, которые затем превращаются в запрос GET и отправляются на сервер.
JavaScript строит мой запрос отлично, и все формы отправляются правильно.
В зависимости от форм, которые пользователь отправляет, данные обрабатываются с помощью большого оператора switch, который передает соответствующие имена вариационной функции, которая захватывает значения, и создает строку для записи в файл.
Странная ошибка заключается в том, что в файл записываются только некоторые значения, а другие имеют пустую строку. Об ошибках, сообщаемых Apache или PHP, об ошибках не сообщается в консоли JavaScript.
Я буду использовать форму «Цвет», например, поскольку это один из самых сложных.
Так добавить цвет действия и нажмите на кнопку, чтобы все формы (на этот раз, это просто форма цвета, хотя)
Моего запрос прибудет выглядит следующим образом: actionIDs=Colour&coOptionSelect=Tinting&coColourEffect=Sepia&coRemoveColour=#000000&coRemoveFuzzNumber=0&coRemoveHueSelect=None&coReplaceColour=#000000&coReplaceFuzzNumber=0&coReplacementColour=#000000&coReplacementAlphaNumber=0&coReplaceHueSelect=None&coReplacementHueSelect=None
Далее, РНР анализирует часть actionIDs как иногда, будет много действий. Это прекрасно работает.
Теперь перейдем к цветовой части инструкции переключателя.
case "Colour":
$config = processAction("coOptionSelect", "coColourEffect", "coRemoveColour", "coRemoveFuzzNumber", "coRemoveHueSelect", "coReplaceColour", "coReplaceFuzzNumber", "coReplacementColour", "coReplacementAlphaNumber", "coReplaceHueSelect", "coReplacementHueSelect");
file_put_contents($confpath . "colour.conf", $config);
break;
что пишет на правильный файл, но как ни странно, только coOptionsSelect
и coColourEffect
имеют свои значения записываются в файл. Это не их тип ввода, так как они являются операциями выбора, аналогичными другим выборам в форме. В других формах это может быть числовой ввод или текстовый ввод, который правильно подает.
Это не случайность, одни и те же всегда будут правильно выписываться. Он также не является позиционным, поскольку я перемещался по значениям, и это все те же самые, которые пишут правильно, их позиция ни на что не влияет.
И наконец, это функция processAction.
function processAction()
{
$config = "";
foreach(func_get_args() as $field)
{
$temp = isset($_REQUEST[$field]) ? $_REQUEST[$field] : null;
$config = $config . $temp . "\n";
}
return $config;
}
Конечный результат должен быть все значения должны писать их соответствующие файлы правильно, а не текущий вопрос, где только несколько значений из каждой формы написаны, остальные значений записываются в виде пустых строк.
Простыми словами, пожалуйста, уточните, что вы пробовали и что хотите, и что ожидается результат. Как этот длинный рассказ некоторое время остался без ответа .. –
@PuzzledBoy Это довольно длинный, но без ошибок логги ошибок, я не могу точно определить, где именно ошибка. Моя конечная цель заключается в том, что значения из большого запроса GET, отправленного AJAX, обрабатываются и записываются в соответствующие файлы. Моя проблема: только некоторые значения написаны с кажущейся логикой о том, почему. Я попытался найти различные журналы ошибок и выписать переменные значения, а также попытаться сломать логику. Не повезло. – Arcana