Erreur " Undefined variable"

Bonjour,

Nous utilisons Dolibarr depuis quelques années avec satisfaction.
La version utilisée est la 13.0.4 et les éventuels plugins/modules sont tous natifs.
PHP 8.0.
MySQL 5.7
Nous n’avons pas d’extensions " commerciales ".
Les mises à jour sont mises à disposition par l’hébergeur et le tout est installé/géré sur le serveur de l’hébergeur.

Récemment, un message d’erreur apparaît en haut de l’écran : Warning: Undefined variable $sbarcode in /home/clients/2cde88c67225b49fd374cca32627110c/dolibarr/86avenue/product/reassort.php on line 223
À quoi correspond ce message d’erreur ?

Jusqu’à présent, tout semble fonctionner correctement, à part une sorte de bug qui persiste depuis plusieurs mois (voire plus d’une année) : sur les nouveaux produits, il n’est plus possible d’ajouter de traduction. Par contre, si on duplique un ancien produit, les traductions préexistantes sont maintenues.

Toute indication informée sur le message d’erreur est accueillie chaleureusement.
Merci d’avance.
Meilleures salutations.

Bonjour,
Repassez en php 7 :wink:

2 « J'aime »

Bonjour,
Vous devriez également passer main_prod à 1 dans le fichier conf/conf.php

1 « J'aime »

Merci pour votre message.

Y a-t-il un moyen de procéder à cette modification sans trifouiller dans les fichiers ? Dolibarr est proposé et installé sur le serveur de l’hébergeur. Les mises à jour sont " automatiques " et nous ne modifions pas les fichiers directement par crainte d’endommager le fonctionnement du logiciel. Nous ne procédons aux modifications que par l’interface du logiciel.
Merci d’avance.
Salutations.

On est passé en php 7.4 (l’hébergeur nous informe par son interface que cette version est sur le point d’être obsolète). Le message d’erreur a disparu.
Est-ce qu’une version ultérieure de Dolibarr est compatible avec une version php plus récente ?
Merci.

Bonjour,
Hum…le mot automatique me fait un brin peur.
Soit il y a tout de même quelqu’un chez l’hébergeur qui gère votre dolibarr pour vous et c’est donc à lui de faire le nécessaire. Soit vous vous exposez à gros risque car les mises à jour, surtout automatiques ne sont jamais anodines et pourrait rendre votre système instable ou inutilisable et dans ce cas là, comment feriez-vous ?

Pour le moment, tout n’est compatible avec PHP8, je vous conseille d’attendre avant de passer sur cette version
Vous pouvez cependant donner de votre temps pour remonter les problèmes avec php8 voir ce sujet : Dolibarr V15 et PHP 8 - #4 par Arre

La décision de procéder à des mises à jour majeures est nôtre, les mises à jour mineures sont - sauf erreur - faites automatiquement. Les mises à jour proposées par l’hébergeur - sauf erreur - sont toujours décalées (en retard) par rapport à leur disponibilité, probablement pour réduire les " bugs " de jeunesse.

Dans le cas d’une instabilité, il y a possibilité de retourner à une version précédente (enregistrement automatique des bases de données et paramètres par l’hébergeur), bien que pour Dolibarr, cela n’a pas encore été nécessaire.
Merci.

Merci pour la précision.

Peut-on vous demander ce que signifie concrètement " passer main_prod à 1 dans le fichier conf/conf.php " ? Qu’est-ce que cela engendre ?
Merci.

Bon finalement, on a " passé main_prod à 1 dans le fichier conf/conf.php ", sans savoir ce que cela engendre… :cold_face:
Php est 7.4.

Il reste toujours le problème de la traduction de la description du produit. Lorsque nous voulons ajouter une traduction, un message d’erreur sur une page blanche apparaît :
Access to this page this way (POST method or GET with a sensible value for 'action' parameter) is refused by CSRF protection in main.inc.php. Token not provided. If you access your server behind a proxy using url rewriting and the parameter is provided by caller, you might check that all HTTP header are propagated (or add the line $dolibarr_nocsrfcheck=1 into your conf.php file or MAIN_SECURITY_CSRF_WITH_TOKEN to 0 into setup).

Nous sommes dans la confusion.
Merci.

main_prod indique que vous êtes sur un environnement de production et non de développement et donc qu’à ce titre, les messages d’erreur doivent être masqués.
Ok pour votre gestion des mises à jour et de sauvegardes.
Comme l’indique le message d’erreur, essayer de passer $dolibarr_nocsrfcheck à 1 dans conf/conf.php visiblement, c’est la protection CSRF qui pose problème dans vos produits

1 « J'aime »

C’est fait:
$dolibarr_nocsrfcheck="1";
… et les traductions sont possibles à nouveau.
Vous êtes génial !

Merci.

Note : pourquoi est-ce que ces paramètres sont changés en cours de route, sans intervention de l’utilisateur ? Mystère…

Il n’y a pas de quoi, tant mieux si vous êtes dépannés.
Ces paramètres n’ont pas été changés en court de route.
Le main_prod n’avait jamais été activé et pour le CRSF ça peut venir de pleins de choses différentes (et peut être de la version sur laquelle vous êtes, couplé au php avec lequel vous êtes), là on a désactivé pour que ça vous laisse tranquille
Bonne continuation