2010-02-26 32 views
5

có giới hạn đối số POST không? Tôi có tình huống mà trên máy chủ dev hình thức của tôi với hơn 520 args được đăng và lưu mà không có vấn đề, nơi sản xuất env nó tiết kiệm chỉ lên đến 499 args ...Giới hạn đối số POST trong html hoặc php

Bất kỳ ý tưởng?

Trả lời

10

Tôi không nghĩ rằng có một giới hạn nào cho số biến gửi qua POST, chỉ trên tích lũy kích thước của chúng. Giới hạn thay đổi từ máy chủ đến máy chủ.

Cập nhật: Suhosin PHP hardening patch thực tế có thể áp đặt giới hạn số lượng biến yêu cầu. Mặc định là 200. Suhosin được cài đặt mặc định trên Ubuntu, vì vậy nó có thể là lý do cho vấn đề của bạn. Thông tin lịch sự của @Pascal Martin, chúc mừng!

Có hai yếu tố để hạn chế POST kích thước tối đa:

Bạn có thể tìm hiểu giá trị của nó sử dụng phpinfo().

Và giới hạn máy chủ web của:

Trong trường hợp cụ thể của bạn, bạn có thể muốn thêm những loại máy chủ bạn đang chạy này trên và dữ liệu lớn đến mức nào. Có 520 đối số đến bất kỳ đâu gần post_max_size không? Điều gì xảy ra nếu bạn thực hiện print_r($_REQUEST) trong tập lệnh nhận?

+0

Đó là loại giới hạn có thể được thực hiện bởi suhoshin (xem http://www.hardened-php.net/suhosin/configuration.html#suhosin.post.max_vars ví dụ - nhưng giá trị mặc định là 200, và không phải 500) ;; và suhosin được cài đặt mặc định trên Ubuntu, chẳng hạn. –

+0

@Pascal rất tốt để biết, cảm ơn bạn! Cập nhật câu trả lời cho phù hợp. –

+0

bạn được chào đón :-) ;;; Tôi đã thấy suhosin gây ra loại vấn đề đó nhiều hơn một vài lần, vì vậy nghĩ rằng nó có thể là một ý tưởng ;-) * (và câu trả lời của bạn đã tốt hơn những gì tôi đã đăng ^^) * –

0

tôi nghĩ rằng giới hạn POST là bất cứ điều gì được cấu hình trong php.ini (8M bởi mặc định?)

1

Vâng, điều này được kiểm soát bởi các chỉ thị post_max_size, đó là 8M theo mặc định.

Số lượng đối số không quan trọng, nhưng bạn có thể vượt quá giới hạn trong quá trình sản xuất của mình.

Bạn có thể chạy ini_get ('post_max_size') trong cả hai môi trường để xem liệu có sự khác biệt hay không.

Bạn không thể thay đổi nó từ ini_set, tuy nhiên có thể thay đổi chỉ thị từ .htaccess.

2

Ngoài ra, trong tập tin PNP.INI có một thiết lập:

max_input_vars 

mà trong phiên bản của tôi về PHP: 5.4.16 mặc định là 1000.

Từ hướng dẫn: "Có bao nhiêu biến đầu vào có thể được chấp nhận (giới hạn được áp dụng cho $ _GET, $ _POST và $ _COOKIE superglobal riêng)"

Ref .: http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars

Các vấn đề liên quan