Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration
Nom Défaut Modifiable Historique
assert.active "1" INI_ALL Obsolète à partir de PHP 8.3.0
assert.bail "0" INI_ALL Obsolète à partir de PHP 8.3.0
assert.warning "1" INI_ALL Obsolète à partir de PHP 8.3.0
assert.callback NULL INI_ALL Obsolète à partir de PHP 8.3.0
assert.quiet_eval "0" INI_ALL Supprimé à partir de PHP 8.0.0
assert.exception "1" INI_ALL Antérieur à PHP 8.0.0, la valeur par défaut est "0" Obsolète à partir de PHP 8.3.0
enable_dl "1" INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
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  
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

assert.active bool

Active les évaluations de type assert(). zend.assertions devrait être utilisé à la place pour contrôler le comportement de assert().

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

assert.bail bool

Termine le script si une assertion échoue.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

assert.warning bool

Émet une alerte PHP pour chaque assertion qui échoue.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

assert.callback string

Fonction définie par le programmeur, à appeler pour chaque assertion échouée.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

assert.quiet_eval bool
Avertissement

Cette fonctionnalité a été SUPPRIMÉE à partir de PHP 8.0.0.

Utilise la configuration courante de error_reporting() durant les évaluations d'assertions. Si activée, aucune erreur n'est affichée (error_reporting(0) implicite) durant l'évaluation. Si désactivée, les erreurs sont affichées en fonction de la configuration de error_reporting()

assert.exception bool

Lève une exception AssertionError lors d'une assertion échouée.

enable_dl bool

Cette directive permet d'activer ou de désactiver le chargement dynamique d'extension PHP avec la fonction PHP dl().

La raison principale pour désactiver ce système est la sécurité. Avec le chargement dynamique, il est possible de passer outre les restrictions imposées par open_basedir.

max_execution_time int

Fixe le temps maximal d'exécution d'un script, en secondes. Cela permet d'éviter que des scripts en boucles infinies saturent le serveur. La configuration par défaut est de 30 secondes. Lorsque PHP fonctionne depuis la ligne de commande, la valeur par défaut est 0.

Sur les systèmes non-Windows, le temps d'exécution maximum n'est pas affecté par des appels systèmes tels que sleep(). Reportez-vous à la fonction set_time_limit() pour plus de détails.

Votre serveur web peut avoir d'autres configurations de la durée limite d'exécution qui peuvent également interrompre PHP. Apache a une directive Timeout et IIS a une fonction CGI pour cela. Par défaut, elles valent toutes les deux 300 secondes. Reportez-vous à la documentation de votre serveur web pour plus de détails.

max_input_time int

Cette option spécifie la durée maximale pour analyser les données d'entrée, comme POST et GET. Cette durée est mesurée depuis le moment où PHP est invoqué sur le serveur jusqu'au début de l'exécution du script. La valeur par défaut est -1, ce qui veut dire que max_execution_time est utilisé à la place. Régler la valeur à 0 pour permettre une exécution illimité.

max_input_nesting_level int

Définit la profondeur maximale des variables d'entrées (i.e. $_GET, $_POST..)

max_input_vars int

Le nombre de variables d'entrée pouvant être acceptées (cette limite est appliquée aux variables superglobales $_GET, $_POST et $_COOKIE, séparément). L'utilisation de cette directive permet de limiter les possibilités d'attaque par déni de service utilisant des collisions de hachages. S'il y a plusieurs de variables en entrée que le nombre spécifié par cette directive, une alerte de type E_WARNING sera émise, et les variables en trop seront supprimées de la requête.

zend.enable_gc bool

Active ou désactive la collecte des références circulaires.

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