Erreurs PHP sur Yakforms 1.1 Drupal 7.80

Bonjour,

Je viens d’installer Yakforms et ça fonctionne, mais j’ai des erreurs PHP dans pas mal de pages.

Pour exemple, dans des pages d’administration, avec le thème RedYakforms :

  • Notice: Undefined index: featured in include() (line 170 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/profiles/yakforms_profile/themes/yaktheme/templates/page.tpl.php).
  • Notice: Undefined index: distribution_name in drupal_install_profile_distribution_name() (line 207 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/includes/install.inc).
  • Deprecated function: Array and string offset access syntax with curly braces is deprecated in require_once() (line 341 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/includes/module.inc).
  • Deprecated function: Array and string offset access syntax with curly braces is deprecated in require_once() (line 341 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/includes/module.inc).
  • Deprecated function: Array and string offset access syntax with curly braces is deprecated in require_once() (line 341 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/includes/module.inc).
  • Notice: Trying to access array offset on value of type int in format_string() (line 1821 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/includes/bootstrap.inc).

Pour info, les versions :

  • PHP 7.4
  • MySQL : 10.3.27-MariaDB
    Je sais que MySQL n’est pas supporté, mais je n’ai pas d’autre moteur de BD sous la main.
  • Drupal : 7.80
  • Yakforms : 7.x-1.1 (Yakforms Spam Protection 7.x-1.3)

Des idées d’où ça pourrait venir ?

Note : je vais tester avec PHP 7.3, comme c’est la version listée, on verra si ça disparaît.

@+

Benoît ‹ Mutos › Robin

Rebonjour,

Encore un exemple : à l’enregistrement d’un formulaire de test contenant quelques champs (mail + texte + nombre) :

  • Notice: Undefined index: pid in webform_charts_tokens() (line 41 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/profiles/yakforms_profile/modules/webform_charts/webform_charts.tokens.inc).
  • Notice: Undefined index: form_key in webform_charts_tokens() (line 41 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/profiles/yakforms_profile/modules/webform_charts/webform_charts.tokens.inc).
  • Notice: Undefined index: pid in webform_charts_tokens() (line 41 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/profiles/yakforms_profile/modules/webform_charts/webform_charts.tokens.inc).
  • Notice: Undefined index: form_key in webform_charts_tokens() (line 41 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/profiles/yakforms_profile/modules/webform_charts/webform_charts.tokens.inc).

Rebonjour,

Pour info, je viens de trouver l’explication au moins pour les erreurs Array and string offset access syntax with curly braces is deprecated :

La syntaxe du style echo($str{0}); a été remplacée par echo($str[0]); depuis PHP 5.1, mais était acceptée sans avertissement jusqu’en PHP 7.3, ça change en 7.4.

Du coup, j’aurai au moins ça en moins, restera la palanquée d’erreurs Undefined index

Rebonjour,

Toujours pour information, lorsque je suis connecté et que j’affiche mon bête formulaire de test, j’ai l’erreur suivante :

  • Notice: Undefined index: featured in include() (line 170 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/profiles/yakforms_profile/themes/yaktheme/templates/page.tpl.php).

Lorsque je me déconnecte, plus d’erreur…

Et apparemment, les erreurs de « curly braces » ont bien disparu avec le passage de PHP 7.4 à 7.3, mais bien sûr, ce n’est que temporaire, il faudra bien un jour passer en 7.4…

Il semblerait donc que ce soit un problème avec webform_charts, qui n’a plus l’air maintenu :confused: (et qui a déjà un autre problème avec PHP 7.3 visiblement).

  • Notice: Undefined index: featured in include() (line 170 of /var/www/vhosts/questions.cgt-framatome.org/httpdocs/profiles/yakforms_profile/themes/yaktheme/templates/page.tpl.php).

Ça pour le coup, ça doit être un problème de yaktheme. Est-ce que tu pourrais ouvrir une issue ? Il me semble que ce serait le meilleur endroit pour garder trace du problème et le régler.

Bonjour thelem,

Merci pour tes réponses, je vais voir si mon compte FramaGit est validé.

@+
Mutos

Bonjour,

Pour info, mon compte FramaGit est toujours « pending approval ».

@+
Mutos

Je viens de l’approuver :slight_smile:

Bonjour spf,

Merci ! Je crée les issues.

J’en ai déjà postée une, là j’entre en réunion, et il faudra que je teste à nouveau pour voir ce qu’il reste comme erreurs après le passage de PHP de 7.4 vers 7.3.

@+
Mutos

@Mutos : chez toi c’est en prod avec Mysql, pas plus de problème que ça ? C.F. Yakforms incompatible Mysql/MariaDB? )

Bonjour kepon,

Pour ce que j’en ai testé, ça a l’air de marcher.
Le seul vrai problème que j’ai vu, c’est qu’il n’envoie pas les mails. Ça n’a pas a priori l’air de provenir de la BD, mais qui sait ? En fait, je ne sais pas d’où ça vient, alors…

@+
Mutos

Bonjour,

Je n’avais pas eu le temps de faire quoi que ce soit depuis longtemps, là j’ai enfin pu m’y mettre…

Du coup, j’ai mis à jour Drupal Core de 7.80 vers 7.82 (ça fait un peu peur au début, mais finalement on y arrive…) et en même temps Webform_confirm_email (plus simple puisque la MàJ auto est supportée).

Les mails fonctionnent bien maintenant, par contre, j’ai toujours l’erreur suivante :

*Notice* : Undefined index: featured dans *include()* (ligne *170* dans */var/www/vhosts/questions.cgt-framatome.org/httpdocs/profiles/yakforms_profile/themes/yaktheme/templates/page.tpl.php*).

@+
Mutos

Bonjour,

Après avoir un peu regardé ce qu’il s’est passé en deux mois, je me demande comment je peux mettre à jour mon Yakforms avec les corrections pour le problème de nullcheck qui provoque la fameuse erreur 'Undefined index: featured.

@+
Mutos