新信息:
我用在$_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