Hướng dẫn dùng wp-config max_input_vars trong PHP

PHP max_input_vars?

Tôi đang nhận được một max_input_varsthông báo lỗi.

Tôi hiểu rằng có một php.inicài đặt có thể thay đổi điều này bắt đầu với phiên bản 5.3.9, tuy nhiên, tôi đang chạy phiên bản 5.1.6.

Khi tôi xem thông tin cấu hình cho máy chủ 5.1.6 của mình, nó hiển thị max_input_varsgiá trị là 1000.

Câu hỏi của tôi là: Mặc dù tôi đang chạy 5.1.6, tôi thấy cài đặt này từ phpinfo()nhưng nó không có trong php.initệp. Điều này có nghĩa là giá trị được mã hóa cứng trong phiên bản PHP này và không thể thay đổi?

  • php

71 hữu ích 5 bình luận 285k xem chia sẻ

answer

41

Hướng dẫn dùng wp-config max_input_vars trong PHP

Bạn có thể thêm nó vào php.ini và nó sẽ hoạt động - chỉ cần thử nghiệm nó trên PHP 5.3.6.

41 hữu ích 3 bình luận chia sẻ

answer

91

Hướng dẫn dùng wp-config max_input_vars trong PHP

Tham khảo trên mạng PHP:

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

Xin lưu ý, bạn không thể đặt lệnh này trong thời gian chạy với chức năng ini_set(name, newValue), ví dụ:

ini_set('max_input_vars', 3000);

Nó sẽ không làm việc.

Như được giải thích trong tài liệu, lệnh này chỉ có thể được đặt cho mỗi phạm vi thư mục, có nghĩa là thông qua tệp .htaccess, httpd.conf hoặc .user.ini (kể từ PHP 5.3).

Xem http://php.net/manual/en/configuration.changes.modes.php

Thêm lệnh vào php.ini hoặc đặt các dòng sau vào .htaccess sẽ hoạt động:

php_value max_input_vars 3000
php_value suhosin.get.max_vars 3000
php_value suhosin.post.max_vars 3000
php_value suhosin.request.max_vars 3000

91 hữu ích 4 bình luận chia sẻ

answer

19

Hướng dẫn dùng wp-config max_input_vars trong PHP

Mới thử bản sửa lỗi này với 5.3.3 và không có thay đổi. Tìm kiếm xung quanh Tôi tìm thấy trang web này http://anothersysadmin.wordpress.com/2012/02/16/php-5-3-max_input_vars-and-big-forms/ nêu chi tiết các cài đặt khác cần thay đổi nếu máy chủ của bạn sử dụng bản vá Suhosin mà Apache trong Debian làm.

Trang web giải thích:

Vì vậy, nếu bạn muốn tăng số này lên, giả sử 3000 từ số mặc định là 1000, bạn phải đặt vào php.ini những dòng này:

max_input_vars = 3000 suhosin.post.max_vars = 3000 suhosin.request.max_vars = 3000

Tôi đã thử nghiệm nó (đã thêm cài đặt vào php.ini cả trong / etc / php5 / apache2 và / etc / php5 / cli và khởi động lại Apache thành công) nhưng vẫn không có biến max_input_vars trong phpinfo.

Một vài trang web chỉ ra PHP 5.3.9 là phiên bản PHP đầu tiên mà thay đổi này sẽ xảy ra, do đó, lỗi của tôi là không RTM đúng cách ngay từ đầu, mặc dù tôi rất thích thấy mọi người báo cáo nó hoạt động trong phiên bản trên 5.3.3 nhưng dưới 5.3.9.

19 hữu ích 2 bình luận chia sẻ

answer

8

Hướng dẫn dùng wp-config max_input_vars trong PHP

Bạn cần bỏ ghi chú giá trị max_input_vars trong tệp php.ini và tăng nó (exp. 2000), cũng đừng quên khởi động lại máy chủ của bạn, điều này sẽ giúp 99,99%.

8 hữu ích 3 bình luận chia sẻ

answer

3

Hướng dẫn dùng wp-config max_input_vars trong PHP

Việc sử dụng chỉ thị này giảm thiểu khả năng từ chối các cuộc tấn công dịch vụ sử dụng va chạm băm. Nếu có nhiều biến đầu vào hơn chỉ định của chỉ thị này, E_WARNING sẽ được phát hành và các biến đầu vào tiếp theo sẽ bị cắt khỏi yêu cầu.

Tôi có thể đề nghị không mở rộng giá trị mặc định là 1000 và mở rộng chức năng ứng dụng bằng cách tuần tự hóa yêu cầu hoặc gửi yêu cầu theo khối. Nếu không, bạn có thể mở rộng này để cấu hình cần thiết.

Nó chắc chắn cần phải được thiết lập trong php.ini

3 hữu ích 0 bình luận chia sẻ

answer

2

Hướng dẫn dùng wp-config max_input_vars trong PHP

Lưu ý rằng bạn phải đặt tệp này trong tệp ".user.ini" trong Centos7 thay vì "php.ini" được sử dụng để làm việc trong Centos6. Bạn có thể đặt ".user.ini" trong bất kỳ thư mục con nào để chỉ ảnh hưởng đến thư mục đó.

.user.ini:

max_input_vars = 3000

Đã thử nghiệm trên Centos7 và PHP 5.6.33.

2 hữu ích 0 bình luận chia sẻ

answer

2

Hướng dẫn dùng wp-config max_input_vars trong PHP

Bây giờ là năm 2018. Và tôi vừa gặp vấn đề khi phải gửi yêu cầu vượt quá max_input_vars. Và tôi đã đưa ra một giải pháp mà người mới như tôi quên khởi động lại dịch vụ php fpm sau khi thay đổi max_input_varsparam. bởi vì tôi chỉ cố khởi động lại apache2dịch vụ chứ không phải php fpm

  1. mã uncomment tại /etc/php/7.0/fpm/php.inivà đặt số như bạn muốn
    max_input_vars = 4000
  2. khởi động lại dịch vụ php fpm, khi tôi sử dụng php 7. Do đó,
    sudo service php7.0-fpm restart

Hy vọng nó sẽ giúp
thử nghiệm trên Debian Stretch,php7.0

2 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn dùng wp-config max_input_vars trong PHP

Khối Cpanels mới để xem tệp .htaccess hoặc nếu bạn thêm .user.ini, bạn sẽ không thể xem tệp đó. nhưng với một chút hack bạn có thể làm cho nó hoạt động. Chỉnh sửa ví dụ wp-config.php và trong thanh URL thay thế wp-config.php bằng .htaccess bây giờ bạn có thể dán các giá trị và lưu nó. nhập mô tả hình ảnh ở đây

0 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn dùng wp-config max_input_vars trong PHP

Chỉ có vấn đề tương tự khi thêm các mục menu vào Wordpress. Tôi đang sử dụng Wordpress 4.9.9 trên Ubuntu 18.04, PHP 7.0. Tôi chỉ đơn giản là bỏ ghi chú dòng sau và tăng nó lên 1500 trong/etc/php/7.0/apache2/php.ini

; How many GET/POST/COOKIE input variables may be accepted
max_input_vars = 1500

Sau đó, sử dụng như sau để thực hiện thay đổi:

sudo apache2ctl configtest  #(if it does not return ok Apache will not start)
sudo service apache2 reload

Mong rằng sẽ giúp.

0 hữu ích 0 bình luận chia sẻ

answer

1

Hướng dẫn dùng wp-config max_input_vars trong PHP

php_value max_input_vars 6000

"Đặt dòng này trên tệp .htaccess của trang web của bạn."

1 hữu ích 0 bình luận chia sẻ

answer

6

Hướng dẫn dùng wp-config max_input_vars trong PHP

Có, thêm nó vào php.ini, khởi động lại apache và nó sẽ hoạt động.

Bạn có thể kiểm tra nó ngay lập tức nếu bạn muốn ini_set("max_input_vars",100)

6 hữu ích 1 bình luận chia sẻ

Hướng dẫn dùng wp-config max_input_vars trong PHP

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Hướng dẫn dùng wp-config max_input_vars trong PHP