2013-09-28 56 views
3

我發佈的數據大小約爲200KB,我的服務器運行的是PHP 5.3.3.7。 數據實際上是一個嵌套屬性的JavaScript對象,請求中的 看起來像這樣:myObject[prop1][subprop1][key] = 5PHP並非所有發佈的數據都在服務器上收到

但是,服務器上沒有收到所有數據。發佈數據的最後一部分被截斷。 max_post_size設置爲80MB,所以不應該成爲問題。我將請求表單數據與可通過$ _POST訪問的數據進行了比較,並且缺少大量數據。

PHP版本是5.3.3.7。

這可能是什麼原因造成的?

+3

向我們展示一些代碼。特別是你如何處理髮送和接收。 – Mark

+0

數據編碼不正確的可能性有多大?你是讓瀏覽器POST還是使用cURL或類似的東西? – alex

回答

3

你說你使用PHP 5.3.3,但也許這是不完全正確?自PHP 5.3.9起,有一個新設置max_input_vars,它可以將一個可以傳遞給腳本的變量數量限制爲POST(以及GETCOOKIE等等)變量。

如果我是正確的,那麼它足以調整它在php.iniVirtualHost definition,或.htaccessini_set因爲POST將無法​​工作已經修剪你的腳本開始之後)

此設置中引入了安全原因,請謹慎: http://www.phpclasses.org/blog/post/171-PHP-Vulnerability-May-Halt-Millions-of-Servers.html

+0

我增加了max_input_vars並解決了我的問題。只考慮解決問題而不是尋找解決方法的唯一答案。謝謝! –

1

從客戶端試圖使用jQuery和數據轉換你JSON,之前發送POST到服務器

$.ajax({ 
     method: 'POST', 
     url: 'http://someurl.com', 
     data: JSON.stringigy(youJsObject), 
     success: function(data) { 
      // processing data from server 
     } 
    }); 
+0

抱歉,您誤解了我的問題,請求沒有任何問題。這是沒有收到所有道具的服務器。 –

相關問題