Si vous construisez ou gérez un site WordPress et que vous rencontrez soudainement l’erreur :
“Warning : Max Input Vars limit reached”
ou
“Augmentez la valeur de max_input_vars”
…cela signifie que votre serveur empêche PHP de traiter trop de champs de saisie – ce qui est souvent le cas lors de l’enregistrement de grands menus, de constructeurs de pages (comme Elementor ou WPBakery), ou de soumissions de formulaires.
Dans cet article avancé, nous allons couvrir :
max_input_vars est une directive PHP qui limite le nombre de variables d’entrée que PHP peut accepter (via POST, GET et REQUEST). Cela protège le serveur contre les attaques par déni de service par hachage, mais affecte également les opérations légitimes dans les plateformes CMS.
Valeur par défaut :
Si vous dépassez cette limite (par exemple, enregistrer un menu WordPress avec 1000 éléments), PHP coupe l’entrée, et WordPress échoue silencieusement à enregistrer toutes les modifications.
C’est la façon la plus propre de changer max_input_vars si vous utilisez votre propre serveur :
Etape 1: Localiser ou créer un fichier php.ini (en fonction du serveur) :
Remplacez 8.1 par votre version de PHP.
Etape 2: Trouvez et éditez la directive :
Étape 3: Redémarrez votre serveur web :
ou
Si vous ne pouvez pas accéder à php.ini, essayez de modifier .htaccess à la racine de votre installation WordPress :
<IfModule mod_php.c>
php_value max_input_vars 3000
</IfModule>
⚠️ Cela ne fonctionne que si mod_php est activé. Certains hébergeurs utilisent PHP-FPM à la place, et cette méthode ne fonctionnera pas.
WordPress ne supporte pas nativement la surcharge de max_input_vars, mais dans certaines configurations, l’ajout de ceci peut fonctionner:
Placez-la au-dessus de la ligne qui dit :
Si vous utilisez un hébergement partagé avec cPanel :
fonctionne instantanément – aucun redémarrage n’est nécessaire.
Créez ou éditez le fichier .user.ini dans le dossier racine de WordPress :
Redémarrez ensuite PHP (ou attendez 5 min si l’hébergeur applique les changements automatiquement).
NGINX n’utilise pas .htaccess, il faut donc configurer PHP via le pool FPM ou php.ini.
Editez /etc/php/8.1/fpm/php.ini :
Puis redémarrez :
Créez un fichier phpinfo.php à la racine de votre WordPress :
Accédez-y via un navigateur : https://yourdomain.com/phpinfo.php
Recherchez max_input_vars et vérifiez qu’il est mis à jour.
n’oubliez pas de supprimer le fichier par la suite – il expose des informations sensibles sur le serveur.
Recommandation | Raison |
---|---|
Ne pas définir max_input_vars à 999999 | Peut conduire à des vulnérabilités DoS |
S’en tenir à 3000-5000 | Suffisant pour les grands menus/constructeurs de pages |
Surveiller les limites de mémoire | Grandes variables d’entrée = plus d’utilisation de la mémoire |
Utiliser phpinfo() ou ini_get() pour déboguer | Éviter les devinettes |
Parfois, ce problème s’accompagne de l’atteinte d’autres limites :
Ces paramètres peuvent également être placés dans php.ini, .htaccess ou .user.ini.
L’erreur max_input_vars est facile à manquer mais peut briser silencieusement des fonctionnalités critiques de WordPress. En augmentant cette limite via la bonne méthode pour votre environnement, vous assurez la stabilité des menus complexes, du contenu multilingue et des constructeurs de pages par glisser-déposer.