PHP Velho Oeste 2024

Configurações em Execução

O comportamento destas funções é afetado pelas configurações do php.ini.

Opções de configuração do PHP
Nome Padrão Modificável Registro de Alterações
assert.active "1" INI_ALL Desencorajado desde o PHP 8.3.0
assert.bail "0" INI_ALL Desencorajado desde o PHP 8.3.0
assert.warning "1" INI_ALL Desencorajado desde o PHP 8.3.0
assert.callback NULL INI_ALL Desencorajado desde o PHP 8.3.0
assert.quiet_eval "0" INI_ALL Removido desde o PHP 8.0.0
assert.exception "1" INI_ALL Anteriormente ao PHP 8.0.0 o padrão era "0". Desencorajado desde o PHP 8.3.0
enable_dl "1" INI_SYSTEM Este recurso defasado certamente será removido no futuro.
max_execution_time "30" INI_ALL  
max_input_time "-1" INI_PERDIR  
max_input_nesting_level "64" INI_PERDIR  
max_input_vars 1000 INI_PERDIR  
zend.enable_gc "1" INI_ALL  
Para mais detalhes e definições dos modos INI_*, consulte os Onde uma configuração deve ser definida.

Aqui está uma breve explicação das diretivas de configuração.

assert.active bool

Ativa a avaliação de assert(). zend.assertions deve ser utilizado para controlar o comportamento de assert().

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

assert.bail bool

Termina a execução de scripts se uma asserção falharem.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

assert.warning bool

Emite um warning para cada falha de assert.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

assert.callback string

Função a chamar em caso de asserts falharem.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

assert.quiet_eval bool
Aviso

Este recurso foi REMOVIDO a partir do PHP 8.0.0.

Utilize a configuração atual de error_reporting() durante a avaliação de expressões assert. Se ativo então nenhum erro é mostrado (padrão é error_reporting(0)) nas avaliações. Se desativa erros são mostrados de acordo com as configurações de error_reporting()

assert.exception bool

Lança uma exceção AssertionError no caso de um assert falhar.

Aviso

Este recurso tornou-se DEFASADO a partir do PHP 8.3.0. O uso deste recurso é fortemente desencorajado.

enable_dl bool

Esta diretiva permite ativar ou desativar o carregamento dinâmico de extensões do PHP com dl() .

A razão principal para desligar o carregamento dinâmico é segurança. Com carregamento dinâmico é possível ignorar todas as restrições de open_basedir. O padrão é permitir carregamento dinâmico.

max_execution_time int

Isso configura o tempo máximo, em segundos, que um script é permitido executar antes de ser terminado. Isso ajuda a prevenir que scripts mal escritos de lotar os servidores. O padrão é de 30 segundos. Quando rodando o PHP a partir da linha de comando o padrão é zero 0.

O tempo máximo de execução não é afetado por chamadas de sistema, operações em streams, etc. Veja a documentação da função set_time_limit() para mais detalhes.

Seu servidor web pode ter outras configurações de timeout que também interrompam a execução do PHP. Apache possui uma diretiva Timeout e o IIS tem uma função de timeout CGI. Ambos com padrão de 300 segundos. Veja a documentação do servidor web para mais detalhes.

max_input_time int

Configura o tempo máximo, em segundos, que um script é permitido dispensar interpretando dados de entrada, como GET e POST. O cronômetro começa no momento que o PHP é chamado pelo servidor e termina quando a execução começa. A configuração padrão é -1, o que significa que o valor de max_execution_time será usado. Defina como 0 para permitir tempo ilimitado.

max_input_nesting_level int

Configura a profundidade máxima de níveis das variáveis de entrada ( $_GET, $_POST).

max_input_vars int

Configura quantas variáveis de entrada serão aceitas, com o limte aplicado a cada super global $_GET, $_POST e $_COOKIE separadamente). O uso dessa diretiva mitiga a possibilidade de ataques de negação de serviço que utilizam colisões de hash. Se houver mais variáveis do que o especificado nessa diretiva um E_WARNING é lançado, e variáveis de entrada adicionais são ignorados.

zend.enable_gc bool

Ativa ou desativa o coletor de refefências circulares.

add a note add a note

User Contributed Notes 4 notes

up
21
rubo77
10 years ago
I think it is important to mention that some distributions apply bugfixes for older versions so "Available since PHP 5.3.9" is not reliable, for example:
debian squeeze implemented the directive max_input_vars in PHP 5.3.3-7+squeeze7 (see http://ftp-master.metadata.debian.org/changelogs/main/p/php5/php5_5.3.3-7+squeeze17_changelog )
up
1
csongor at halmai dot hu
4 years ago
The max_input_vars setting is defined as "How many input variables may be accepted" but this is not completely correct. There is a +1 factor.

For example, if the value is 2 then the $_POST array can have up to 3 elements, if it is 1000 then it can have 1001 elements, and so on.

I want to stop the execution of the php code when there is a chance that some data was not received. Therefore, instead of relying on the standard E_WARNING, I do this in my code.

<?php
$max_input_vars
= ini_get('max_input_vars');
if (
count($_POST) === $max_input_vars + 1) {   // note the +1 here
   
throw new Exception();
}
?>

If the size of the $_POST array reaches the maximum then there is the chance that there was more data so it is better to stay on the safe side and increase the config value.
up
-4
horst at pepperzak.com
12 years ago
Caution: Although magic_quotes_gpc is flagged as dreprecated the default value is still "ON". So you will explicitly have to put

magic_quotes_gpc = Off

into your php.ini. Commeting out the magic_quotes_gpc-line will not turn magic_quotes_gpc off.
up
-86
Anonymous
10 years ago
The max_input_vars limit can be overcome by reading the input in raw, i.e.:
<?php
  $sRawInputData
= fopen( 'php://input' );
?>
To Top