Jump to content

[GUIDE] Problèmes récurrents lors de la traduction dans le Back Office


Ninja Of Web

Recommended Posts

Si lorsque vous enregistrez vos traductions, une partie de celle-ci ne c'est pas enregistré, c'est que vous avez un problème avec la configuration de votre serveur.

 

Certaines variables sont peut-être mal configuré :

 

I. max_input_vars (depuis php 5.3.9 - valeur par défaut : 1000)

 

Attention, votre configuration PHP limite le nombre maximum de champs d’un formulaire 1000 pour max_input_vars. Veuillez contacter votre hébergeur pour augmenter cette limite à 1358 au moins ou modifiez le fichier de traduction manuellement.

 

ou

 

Attention, votre hébergement utilise le patch de sécurité suhosin pour PHP, qui limite le nombre maximal de champ dans un formulaire :

1000 pour suhosin.post.max_vars.

1000 pour suhosin.request.max_vars.

Demandez à votre hébergeur d'augmenter les limites post et request à 4456 au moins. ou éditer le fichier de traduction manuellement.

 

 

max_input_vars.png

 

Modifier cette valeur dans votre .htaccess :

php_value max_input_vars 10000

 

Si vous n'utilisez pas APACHE (ex: CGI) ou que vous avez une erreur 500, veuillez modifiez cette valeur de manière récursive dans votre php.ini :

max_input_vars 10000

 

Si vous utilisez suhosin, veuillez modifier dans votre php.ini les valeurs suivantes :

max_input_vars = 10000
suhosin.post.max_vars = 10000
suhosin.request.max_vars = 10000

 

 

II. max_name_length et max_varname_length (Lors de l'utilisation de suhosin - valeur par défaut : 64)

 

Si vous utilisez suhosin, il est possible que certaines chaines ne s'enregistre pas.

 

ex lors de la traduction du front office 1.5 :

max_name_length.png

 

 

Ces différentes chaines ne sont pas traduite car le champ "name" des différents champs font plus de 64 caractères :

<input type="text" value="" name="order-address-multishipping-products_b669d5bfee7c83844d00c007ef74cd2a" style="width: 450px;background:#FBB">

 

Pour palier à ce problème, il faut modifier de manière récursive dans votre php.ini, les variables suivantes:

suhosin.post.max_name_length = 150
suhosin.request.max_varname_length = 150

 

Note: Après des modifications sur votre php.ini, n'oubliez pas de faire un restart votre serveur.

Edited by Ninja Of Web (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

Vous avez une page blanche à l'affichage de vos traduction ou au moment de sauvegarde vos traductions (généralement c'est une erreur 500) ?

Cela doit être une erreur du à la configuration de votre serveur.

 

Pour vérifier de quel type d'erreur il s'agit, il faut aller afficher vos erreurs PHP ou aller voir vos logs d'erreur PHP (pour les logs d'erreurs, voir avec votre administrateur).

 

Pour l'affichage, voici la manipulation à faire :

  • Aller dans le fichier suivant sur votre FTP ou votre dossier www si vous êtes en local : config/config.inc.php
  • Remplacer les valeurs suivantes :

/* Debug only */
@ini_set('display_errors', 'off');
define('_PS_DEBUG_SQL_', false);

  • par :

/* Debug only */
@ini_set('display_errors', 'on');
define('_PS_DEBUG_SQL_', true);

  • et retourner sur la page blanche ou celle ou vous avez votre erreur 500.
  • Voici les erreurs qui peuvent être affiché :

I. Fatal error: Maximum execution time of 10 seconds exceeded

 

max_execution_time.png

 

Solution : Il faut augmenter la valeur du paramètre "max_execution_time".

 

3 possibilités :

  • Modifier votre .htaccess :

php_value max_execution_time = 60

  • si vous n'utilisez pas APACHE (ex: CGI) ou que vous avez une erreur 500, veuillez modifiez cette valeur de manière récursive dans votre php.ini :

max_execution_time = 60

 

Une fois cette valeur changer, redémarrer votre serveur et re-tester !

 

Si vous ne savez pas ou se trouve votre fichier php.ini, demander à l'administrateur de votre serveur.

  • Modifier directement dans le fichier config/config.inc.php :

ini_set('max_execution_time','60');

 

 

 

II. Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 103 bytes)

 

memory_limit.png

 

Solution : Il faut augmenter la valeur du paramètre "memory_limit".

 

3 possibilités :

  • Modifier votre .htaccess :

php_value memory_limit = 128M

  • si vous n'utilisez pas APACHE (ex: CGI) ou que vous avez une erreur 500, veuillez modifiez cette valeur de manière récursive dans votre php.ini :

memory_limit = 128M

 

Une fois cette valeur changer, redémarrer votre serveur et re-tester !

 

Si vous ne savez pas ou se trouve votre fichier php.ini, demander à l'administrateur de votre serveur.

  • Modifier directement dans le fichier config/config.inc.php :

ini_set('memory_limit','128M');

 

III. Vous avez un autre type d'erreur ?

 

Donnez moi l'erreur qui est affiché est je vous proposerez des solutions :)

Edited by Ninja Of Web (see edit history)
Link to comment
Share on other sites

  • 3 months later...
  • 1 month later...

bonjour,

 

Juste une question : que signifie "de manière récursive" car j'ai bien tout modifié et j'ai toujours l'erreur.

Merci de ta réponse !

 

Fred

 

----Edit----

 

Bon j'ai trouvé en fait il faut aussi modifier le php.ini qui se trouve ici :

/etc/php5/cgi/

 

Si ça ne marche pas, le modifier également ici :

/etc/php5/cli/

 

Bien sûr ne pas oublier un restart ---> /etc/init.d/apache2 restart

Merci pour ton tuto ninja ;)

Edited by fredoxxx (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Bonjour,

 

Ayant l'erreur :

Attention, votre configuration PHP limite le nombre maximum de champs d'un formulaire
[b]2000[/b] pour max_input_vars
Veuillez contacter votre hébergeur pour augmenter cette limite à 10153 au moins ou modifiez le fichier de traduction manuellement.

 

 

J'ai voulu modifier le .htaccess et j'ai une erreur 500

 

J'avais ajouté la ligne en 3è position ainsi :

SetEnv PHP_VER 5_TEST

SetEnv REGISTER_GLOBALS 0

php_value max_input_vars 12000

 

 

J'ai voulu modifier le config.inc.php pour passer à true comme vous indiquez, mais je n'ai pas les lignes

 

 

/* Debug only */

@ini_set('display_errors', 'off');

define('_PS_DEBUG_SQL_', false);

Link to comment
Share on other sites

Bonjour,

 

Ayant l'erreur :

Attention, votre configuration PHP limite le nombre maximum de champs d'un formulaire
[b]2000[/b] pour max_input_vars
Veuillez contacter votre hébergeur pour augmenter cette limite à 10153 au moins ou modifiez le fichier de traduction manuellement.

 

 

J'ai voulu modifier le .htaccess et j'ai une erreur 500

 

J'avais ajouté la ligne en 3è position ainsi :

SetEnv PHP_VER 5_TEST

SetEnv REGISTER_GLOBALS 0

php_value max_input_vars 12000

 

 

J'ai voulu modifier le config.inc.php pour passer à true comme vous indiquez, mais je n'ai pas les lignes

 

 

/* Debug only */

@ini_set('display_errors', 'off');

define('_PS_DEBUG_SQL_', false);

 

Si tu as cette erreur 500, c'est que tu ne peut pas utiliser le php_value dans ton .htaccess (cela dépend de ton serveur) il faut donc demander a ton administrateur de modifier la valeur de max_input_vars dans le Php.ini ou si tu y a accès, fait le toi même :)

Link to comment
Share on other sites

  • 1 year later...

Bonjour,

 

je remonte ce post.

 

J’avais le même message d’erreur : Attention, votre hébergement utilise le patch de sécurité Suhosin pour PHP, qui limite le nombre maximal de champs dans un formulaire 2048 pour suhosin.post.max_vars.

2048 pour suhosin.request.max_vars.
Demandez à votre hébergeur d'augmenter les limites POST et REQUEST à 3972 au moins ou modifiez le fichier de traduction manuellement.

 

J’ai donc fait appel à OVH qui m’a indiqué comment modifier le fichier /etc/php.ini.

Lorsque j’accède au fichier par ssh, je vois bien les valeurs de suhosin.post.max_vars et suhosin.request.max_vars à 10 000.

En revanche quand je fais un test sur phpinfo () je vois que le serveur utilise bien le fichier php.ini mais les valeurs de post.max_vars et request.max_vars restent à 2048....

 

J’ai essayé de forcer le fichier .htacces en utilisant php_value et php_flag mais le serveur est en erreur 500.

 

Merci pour votre aide!

 

 

Link to comment
Share on other sites

  • 1 year later...
Guest -PrestaTester-

Salut, pour ceux qui n'ont pas pu trouver une solution pour changer le paramètre max_input_vars, et qui ne veulent pas touché directement les fichier .tpl pour traduire, j'ai trouver une solution très simple:

1) Désinstaller quelques modules et sans désinstaller le module "cash on delivery"
2) Actualiser la page de l'erreur

"Attention, votre configuration PHP limite le nombre maximum de champs d'un formulaire
2000 pour max_input_vars
Veuillez contacter votre hébergeur pour augmenter cette limite à X au moins ou modifiez le fichier de traduction manuellement."

 

Vous désinstalle à chaque fois jusqu'à ce X diminue le maximum puis disparait.


3)Verifié votre traduction, puis si toute est bon, vous pouvez installer les modules déjà désinstallés.

 

 

Cordialement,

Ala

Link to comment
Share on other sites

Si tu as 2000 en max et que tu es à 3000, ça fait quand même un paquet de modules à désinstaller, si la boutique est en prod c'est juste inenvisageable.

A la rigueur tu installes le module sur une boutique "vierge" en local, tu fais les traductions et tu transfères le fichier translations par FTP.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...