Configuración en tiempo de ejecución

El comportamiento de estas funciones se ve afectado por la configuración de php.ini.

Opciones de configuración de opciones/información de PHP
Nombre Por defecto Cambiable Historial de cambios
assert.active "1" INI_ALL  
assert.bail "0" INI_ALL  
assert.warning "1" INI_ALL  
assert.callback NULL INI_ALL  
assert.quiet_eval "0" INI_ALL  
assert.exception "0" INI_ALL Disponible desde PHP 7.0.0.
enable_dl "1" INI_SYSTEM Esta característica obsoleta será eliminada con certeza en el futuro.
max_execution_time "30" INI_ALL  
max_input_time "-1" INI_PERDIR Disponible desde PHP 4.3.0.
max_input_nesting_level "64" INI_PERDIR Disponible desde PHP 4.4.8. y PHP 5.2.3.
max_input_vars 1000 INI_PERDIR Available since PHP 5.3.9.
magic_quotes_gpc "1" INI_PERDIR INI_ALL en PHP <= 4.2.3. Eliminado en PHP 5.4.0
magic_quotes_runtime "0" INI_ALL Eliminado en PHP 5.4.0
zend.enable_gc "1" INI_ALL Disponible desde PHP 5.3.0.
Para más detalles y definiciones de los modos de INI_*, vea Dónde se puede realizar un ajuste de configuración.

He aquí una breve explicación de las directivas de configuración.

assert.active boolean

Activa la evaluación de aserciones().

assert.bail boolean

Terminar la ejecución del script si falla una aserción.

assert.warning boolean

Lanzar un PHP warning for cada aserción que falle.

assert.callback string

Función de usuario a llamar cuando fallen las aserciones.

assert.quiet_eval boolean

Usar la configuración actual de error_reporting() durante las expresiones de evaluación de aserciones. Si está habilitado, no se mostrarán errores (incondicional error_reporting(0)) durante evaluación. Si está deshabitado, se mostrarán errores según la configuración de error_reporting()

assert.exception boolean

Emite una excepción AssertionError para la afirmación fallida.

enable_dl boolean

Esta directiva es muy útil solamente en la versión PHP con el módulo Apache. Se puede activar o desactivar la carga dinámica de extensiones PHP con dl() por servidor virtual o directorio.

La razón principal para desactivar la carga dinámica es por seguridad. Con la carga dinámica, es posible ignorar todas las restricciones open_basedir. De forma predeterminada se permite la carga dinámica.

max_execution_time integer

Este valor establece el tiempo máximo en segundos que se permite ejecutar antes de que el analizador termine. Esto ayuda a prevenir que scripts mal escritos bloqueen el servidor. El valor por defecto es 30. Cuando se ejecuta PHP desde la línea de comandos el valor por defecto es 0.

El tiempo de ejecución máxima no está afectada por llamadas al sistema, operaciones de stream etc. Por favor véase la función set_time_limit() para más información.

El servidor web puede tener otras configuraciones de tiempo de espera que quizá interrumpan la ejecución de PHP. Apache tiene la directiva Timeout y IIS tiene la función CGI timeout. Las dos de 300 segundos por omisión. Véase la documentación del servidor web para información específica.

max_input_time integer

Establece el tiempo máximo en segundos que se permite a un script analizar datos de entrada, como POST y GET. La medición comienza en el momento en que PHP es invocado en el servidor y finaliza cuando la ejecución comienza.

max_input_nesting_level integer

Establece el máximo de profundidad de anidamiento para variables de entrada (p.ej. $_GET, $_POST.)

max_input_vars integer

Cuantas variables de entrada pueden ser aceptadas (el límite se aplica a los arrays superglobales $_GET, $_POST y $_COOKIE de forma separada). El uso de esta directiva mitiga la posibilidad de ataques de denegación de servicio que utilizan colisiones de hash. Si hay más variables de entrada que las especificadas por la presente directiva, un E_WARNING es emitido, y otras variables entrada son truncadas a partir de la solicitud.

magic_quotes_gpc boolean
Advertencia

Esta característica ha sido declarada OBSOLETA desde PHP 5.3.0 y ELIMINADA a partir de PHP 5.4.0.

Establece las magic_quotes state para operaciones GPC (Get/Post/Cookie). Cuando las magic_quotes están activadas, todas las ' (comillas simples), " (comillas dobles), \ (barra invertida) y NUL's son escapados con una barra invertida de forma automática..

Ver también get_magic_quotes_gpc()

magic_quotes_runtime boolean
Advertencia

Esta característica ha sido declarada OBSOLETA desde PHP 5.3.0 y ELIMINADA a partir de PHP 5.4.0.

Si magic_quotes_runtime está activado, la mayoría de funciones que devuelven datos desde cualquier tipo de recurso externo incluyendo bases de datos y ficheros de texto contendrán comillas escapadas con barras invertidas.

Funciones afectadas por magic_quotes_runtime (no incluye funciones de PECL):

zend.enable_gc boolean

Habilita o deshabilita el colector de referencia circular.

add a note add a note

User Contributed Notes 4 notes

up
21
rubo77
11 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
13 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