2016-05-31 74 views
0

我有很多

<input type="checkbox" name="course_id[]" value="xxx"/> 

在我的形式。但是$_POST['course_id']只提供了部分值。

例如,我發佈course_id[]=1&course_id[]=2&course_id[]=3&course_id[]=4$_POST['course_id']["1","2","3"].

在超過1000個course_ids張貼,但只有約990 course_ids在$_POST['course_id']的真實情況。

我已經捕獲到tshark的HTTP包,並發現course_id []的所有值都發布到PHP。

PHP版本是5.5.9

+0

你不需要tshark爲此,使用火狐的live http標頭 –

+0

@PedroLobito我捕獲服務器上的HTTP包,以確保服務器接收到所有值。 – Firas

+0

@JeffPuckettII echo json_encode($ _ POST ['course_id']) – Firas

回答

0

我懷疑你正在運行到的問題是max_input_vars被設置爲默認值,1000我想您發送等10個參數,然後你990 course_ids最大1000的限制。上限,你可以發送超過1000個參數。

您可以在手冊頁面上閱讀更多,http://php.net/manual/en/info.configuration.php#ini.max-input-vars

從手冊:

Name   Default Changeable  Changelog 
max_input_vars 1000 PHP_INI_PERDIR Available since PHP 5.3.9. 

多少輸入變量可以被接受(限制被施加到_GET,$ _POST和$ _COOKIE超全局分開)。該指令的使用減輕了使用散列衝突的拒絕服務攻擊的可能性。如果有更多的輸入變量超出此指令指定的範圍,則發出E_WARNING,並從請求中截斷更多輸入變量。

保留此設置的目的記住,雖然:

使用此指令的減輕拒絕服務攻擊的可能性。

0

在PHP配置中,POST被限制在一定的大小。根據當然的數量,也許你達到了這個限度。 您可以檢查此值post_max_size

參考:http://php.net/manual/en/ini.core.php#ini.post-max-size

+0

我增加了「 post_max_size「爲原來的8倍,但情況依然如此。 – Firas

+0

好的,你預計會有未經檢查的價值嗎?導致它不會被髮送。只有選中的值會被髮送 – sonique

+0

問題是PHP會丟棄一些檢查值,可以通過tshark捕獲 – Firas