Environnement - max input vars

De MoodleDocs
Révision datée du 23 juin 2022 à 10:25 par Séverin Terrier (discussion | contributions) (French link)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à :navigation, rechercher

Le réglage PHP max_input_vars détermine le nombre maximal de variables d'entrée pouvant être acceptées (la limite est appliquée séparément aux variables superglobales $_GET, $_POST et $_COOKIE). S'il y a plus de variables d'entrée que ce nombre, un E_WARNING est levé et les variables d'entrées en trop sont tronquées de la requête.

Moodle comporte beaucoup de gros ou potentiellement gros formulaires, par exemple :

  • l'arbre de recherche de l'administration du site
  • l'édition de rôles
  • l'évaluation de cours avec un grand nombre de participants
  • les gros tests et les réglages des tests

La valeur par défaut de max_input_vars dans PHP est 1000, ce qui est insuffisant dans de nombreux cas.

Si vous utilisez PHP 7, la valeur recommandée dans Moodle pour max_input_vars est de 5000, mais Moodle fonctionne quand même avec une valeur inférieure. Le code source de Moodle comprend une solution de contournement qui permet d'envoyer des formulaires même avec un nombre plus élevé de variables d'entrée, mais cette solution n'est pas parfaite. Il est tout à fait préférable de modifier le réglage.

Si vous utilisez PHP 8, la valeur minimale de 5000 est requise. Par défaut, PHP 8 est configuré de façon à afficher les erreurs au démarrage (voir [[1]]). Ceci signifie que l'avertissement concernant un dépassement de max_input_vars est affiché avant que la solution de contournement évoquée plus haut ne soit appliquée.

Pour modifier max_input_vars, vous pouvez soit la définir dans php.ini, soit la modifier lors du fonctionnement. Par exemple, avec Apache, on peut créer le fichier .htaccess avec : php_value max_input_vars 5000