2011-09-29 55 views
2

我有一個形式,我的應用程序,其中技術人員約採取了不同的事件或操作輸入的信息(如更新服務器)。問題是這些輸入可能相當長,然後我的表單停止工作。如果瀏覽器嘗試發送數據,服務器會向瀏覽器返回302錯誤,但正如我經常嘗試提交時瀏覽器無法執行任何操作一樣。如果瀏覽器沒有做任何事情,Chrome開發者工具的快速查看錶明瀏覽器試圖將帖子執行到正確的路徑,但狀態列爲失敗。如果textarea包含超過3500個字符,就會發生這種情況。我試圖改變enctype來看看會發生什麼,但它沒有解決問題。大的TextInput使得HTTP POST失敗

<form enctype="application/x-www-form-urlencoded" action="/some/path/" method="post" _lpchecked="1"> 
<fieldset> 
    <input type="hidden" name="machineId" value="some_integer"> 
    <input type="hidden" name="eventId" value="some_integer"> 
    Titel: 
    <select name="form[title]"> 
     <option>Some_option</option> 
     <option>some_option</option> 
    </select> 

    <textarea name="form[text]" rows="25" cols="90"></textarea> 
    <input type="submit" value="Spara" title="Spara"> 
</fieldset> 
</form> 

任何想法,爲什麼它不工作,可以做什麼?

編輯: 我的應用程序是基於PHP和在Debian/Apache上運行。我無法找到任何可能阻止帖子正常工作的設置。我有一個的post_max_size設置爲8MB,但3500個字符文本並不比8MB大這麼...

+0

一次偶然的機會,你們的服務器有一個最大尺寸後?可能會達到最高發佈網站的閾值,這會導致它反彈。 (另外,嘗試使用'多部分/形式data'作爲表單'enctype',看看是否有任何改變('應用程序/ x-WWW的形式urlencoded'是enctype'的'默認值) –

+0

我避難所」我可以在服務器上找到任何可能會產生這種效果的設置,但是如果你可以給我和提示什麼,我會再次檢查,我正在運行Debian/Apache,我也嘗試了一些不同enctypes但他們都給予同樣的結果 – Lobo

回答

2

通過POST您的文本很可能不會是1字節/字符。 Apache mod_security可能正在過濾數據。它可以是任何影響後加密的其他數量的Apache mod。您可以查看mb_get_info()和其他mb_ *函數來驗證PHP如何編碼文本。如果您不想深入挖掘,可以根據幾個數據點進行有根據的猜測,即您的POST中每個字符使用了多少個字節,並調整post_max_size以滿足您的需求。

如果您不能打印錯誤屏幕,您可以在白屏症狀後立即檢查

tail -n 30 /var/log/apache2/error.log #prints last 30 lines of error.log

獲得對劇本過程中遇到的錯誤/警告/等更詳細的信息。

另請注意,post_max_size受限於memory_limit ......我不認爲這是問題,但可能是另一位讀者需要考慮的問題。

+0

在Apache日誌中我發現,這是一個「分段錯。」並不能真正解決我的問題,因爲他們很難跟蹤,但你給我的答案如此讚賞你。 – Lobo

0

什麼服務器端語言使用的是?也許你需要一些像這樣的文本壓縮Huffman Algorithm

+0

對不起,完全錯過這些信息。我運行PHP 5.2.6 – Lobo