2012-03-12 21 views
18

Tôi nhận được cảnh báo php mới khi dữ liệu POST từ biểu mẫu trên trang của tôi đến máy chủ của tôi. Cảnh báo như sau:PHP Cảnh báo: Không xác định: Các biến đầu vào vượt quá 1000

PHP Cảnh báo: Không xác định: Biến đầu vào vượt quá 1000. Để tăng giới hạn thay đổi max_input_vars trong php.ini. trong Không xác định trên dòng 0, giới thiệu: https://mywebsite.com/index.php

Điều này là biểu mẫu của tôi không có gần 1000 biến đầu vào, vì vậy tôi không hiểu tại sao điều này lại xuất hiện. Là một lưu ý phụ, tôi đã không có vấn đề này cho đến gần đây và tôi nghi ngờ rằng khi tôi chạy yum update một cái gì đó thay đổi/đã được cài đặt đang gây ra điều này. Bất kỳ lời khuyên hoặc câu trả lời được đánh giá cao.

CHỈNH SỬA 1: Vì vậy, tôi đã làm var_dump($_REQUEST) và có ~ 1000 chuỗi ký tự đơn. Hai mục đầu tiên trong mảng là những gì họ nên, nhưng sau đó một loạt các công cụ mà tôi không cần gửi được chia thành các chuỗi ký tự đơn. Suy nghĩ chào đón.

array(1001) { 
    ["action"]=> string(10) "step1_show" 
    ["submit"]=> string(6) "Step 1" 
    [0]=> string(1) "a" 
    [1]=> string(1) "c" 
    [2]=> string(1) "t" 
    [3]=> string(1) "i" 
    [4]=> string(1) "o" 
    [5]=> string(1) "n" 
    [6]=> string(1) "=" 
    [7]=> string(1) "l" 
    [8]=> string(1) "o" 
    [9]=> string(1) "g" 
    [10]=> string(1) "o" 
    [11]=> string(1) "u" 
    [12]=> string(1) "t" 
    [13]=> string(1) "&" 
    [14]=> string(1) "p" 
    [15]=> string(1) "r" 
    [16]=> string(1) "o" 
    [17]=> string(1) "p" 
    [18]=> string(1) "e" 
    [19]=> string(1) "r" 
    [20]=> string(1) "t" 
    [21]=> string(1) "y" 
    [22]=> string(1) "=" 
    [23]=> string(1) "3" 
    [24]=> string(1) "7" 
    [25]=> .....  

ĐÁP: Rốt cuộc nó cũng là một vấn đề với trình điều khiển của tôi. Cảm ơn tất cả cho đầu vào của bạn.

+2

Chúng tôi cần xem biểu mẫu của bạn để có thể trợ giúp. – DanRedux

+4

Thử 'var_dump ($ _ REQUEST)'. – Travesty3

+1

Tính năng này được giới thiệu trong PHP 5.3.something.Bạn có thể hiển thị biểu mẫu của bạn không? –

Trả lời

41

Đó là cài đặt/giá trị mới trong PHP (liên quan đến cập nhật bảo mật để ngăn chặn các cuộc tấn công vào tập lệnh PHP), vì vậy bạn nhận được điều này sau khi cập nhật (trước khi PHP 5.3.9 không được đặt/có sẵn, suhosin người dùng có một điều tương tự từ lứa tuổi).

Giá trị đầu vào là các loại khác nhau và thành viên mảng cũng được tính. Vì vậy, không đủ để đếm các trường biểu mẫu mà còn phải xem xét URL và các địa điểm khác có liên quan đến đầu vào ($_GET, $_POST, $_SERVER, $_ENV, $_FILES, $_COOKIE ...).

Xem max_input_vars:

bao nhiêu input variables có thể được chấp nhận. Việc sử dụng chỉ thị này giảm thiểu khả năng tấn công từ chối dịch vụ sử dụng các va chạm băm. Nếu có nhiều biến đầu vào hơn được chỉ định bởi chỉ thị này, một số E_WARNING được cấp và các biến đầu vào tiếp theo sẽ bị cắt bớt từ yêu cầu. Giới hạn này chỉ áp dụng cho mỗi mức lồng nhau của một mảng đầu vào đa chiều.

+0

OK. Có vẻ như vấn đề là tôi đang đăng các mục lên máy chủ không liên quan đến biểu mẫu cụ thể. Nhìn vào yêu cầu đăng bài @Darhazer trong firebug cho thấy một số vấn đề. Cảm ơn – Jon

+0

Kiểm soát chất lượng thông qua nâng cấp PHP - vui nhộn;) Rất vui khi bạn tìm thấy thủ phạm. – hakre

-5

Tôi có vấn đề này tương tự khi sử dụng .ajaxSubmit()

Khi serializing hình thức, sử dụng .serializeObject() thay vì .serialize()

Bạn có thể lấy thư viện từ here

+0

Ngôn ngữ không chính xác? – 472084

-1

Tôi đã khắc phục vấn đề max_input_vars qua bảng quản trị máy chủ lưu trữ web của tôi (Littleoak) Tôi đã thay đổi max_input_vars = 0 thành max_input_vars = 6000. Có một số cài đặt php trên máy chủ của tôi mà công ty máy chủ đã định cấu hình. Tôi tin rằng max_input_vars = 0 là để ngăn chặn người gửi spam email sử dụng máy chủ để gửi spam. Các tập tin php.ini sống ở đâu đó, không chắc chắn ở đâu, nhưng tôi đã có thể sửa đổi nó thông qua cPanel trên quản trị trang web của tôi.

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