新信息:
我用在$_REQUEST
的print_r
功能,很奇怪的东西实在是太发生的事情。一些值正在被GET正确传递,例如在“TRUE”中传递的另一个表单上的值。这可以在print_r
输出中看到,但不会写入文件中......但是,仍然没有更接近找到解决我的问题的方法。奇怪的错误与复杂的PHP表格处理
我正在制作一个页面,其中包含许多根据AJAX需要加载的表单。这一切工作正常,解析名称:值对并适当地存储它们。
我的错误发生在PHP解析用户完成时由AJAX发送的GET请求时,它似乎只从特定字段检索值。
这个想法是,用户可以从任意数量的表单添加数据,然后转换成GET请求并发送到服务器。
JavaScript正在完善我的请求,并且所有表格都能正确发送。
根据用户提交的表单,数据由大型switch语句处理,该语句将相关名称传递给可变参数函数,该参数获取值并创建用于写入文件的字符串。
奇怪的错误是,只有一些值被写入文件,其他人只有一个空行。 Apache或PHP没有报告错误,也没有在JavaScript控制台中报告错误。
我会使用颜色表单,因为这是一个更复杂的。
所以我添加颜色操作,然后单击该按钮,提交各种形式(这时候,它只是虽然颜色形式)
我的GET请求看起来是这样的: actionIDs=Colour&coOptionSelect=Tinting&coColourEffect=Sepia&coRemoveColour=#000000&coRemoveFuzzNumber=0&coRemoveHueSelect=None&coReplaceColour=#000000&coReplaceFuzzNumber=0&coReplacementColour=#000000&coReplacementAlphaNumber=0&coReplaceHueSelect=None&coReplacementHueSelect=None
接下来,PHP有时会解析actionIDs部分,会有很多操作。这工作正常。
我们现在跳转到switch语句的Color部分。
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;
}
最终的结果应该是所有数值应写信给他们的相关文件正确,而不是在那里从每个窗体只有几个值写入当前的问题,与其余值被写为空行。
简而言之,请说明您尝试了什么以及您想要做什么/预期结果。由于这个长时间的故事留下了一段时间没有回答.. – 2014-10-05 18:50:25
@PuzzledBoy这是相当长的,但没有错误日志解雇,我似乎无法精确确定错误可能在哪里。 我的最终目标是处理来自AJAX发送的大量GET请求的值并将其写入相关文件。 我的问题:只有一些值是为了什么而写的,看似没有逻辑。 我试过寻找各种错误日志和写出变量值以及试图打破逻辑。没有运气。 – Arcana 2014-10-05 18:54:15