PHP – Limite máximo de campos por formulário

image_pdfimage_print

O PHP introduziu uma nova configuração em seu arquivo de configuração que define o total máximo de campos de um formulário que o PHP irá processar.

Este limite é muito alto e praticamente não atingirá nenhum desenvolvedor. No entanto, algumas aplicações podem gerar seus formulários automaticamente, e basear em tabelas que podem ser grandes, de acordo com o tamanho do sistema, como sistemas de permissão.

Um sistema médio que tenha seus formulários sendo gerado pelo PHP, baseado nas permissões de um sistema, e por exemplo, usando checkbox para indicar que o usuário detém ou não aquela permissão, poderá ser um bom exemplo de um sistema que conseguiria ultrapassar o limite máximo de campos processáveis por formulário.

E o pior deste tipo de erro, é que dependendo do cliente e quantidade de permissões existente, este problema poderia ou não acontecer, fazendo o time perder bastante tempo para encontrar as condições do bug.

Então se estiver ciente deste novo limite, poderá economizar muito tempo em sua busca. A nova configuração é:

#How many input variables may be accepted (limit is applied to $_GET, $_POST and $_COOKIE superglobal
#separately). Use of this directive mitigates the possibility of denial of service attacks which use 
#hash collisions. If there are more input variables than specified by this directive, an E_WARNING is 
#issued, and further input variables are truncated from the request.
max_input_vars integer

Já aconteceu de existir reclamações na web de que o tal E_WARNING não estava nos logs, o que fez certos times perderem muito tempo para detectar o problema.

O atual limite é de 1000 campos por formulário.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!