HikaShop/EasyLayouts: bug "HikaShop user synchronization"

  • Posts: 675
  • Thank you received: 33
  • Hikashop Business Review Plugin
10 hours 4 minutes ago #370121

-- HikaShop version -- : 6.1.1
-- Joomla version -- : 5.4.2
-- PHP version -- : 8.4.16

Bonjour,
je rencontre un bug qui bloque l'affichage d'une page de mon site, ce bug est lié à EasyLayouts et la page du profil utilisateur Joomla.

Geraint le développeur a découvert que le problème vient du plugin "HikaShop user synchronization". Apparemment, une ligne de code dans la fonction onAfterRender vide complètement le contenu de la page si elle ne trouve pas exactement ce qu'elle cherche.

Le développeur m'explique que si cette recherche échoue, la variable qui contient la page est effacée.

Voici sa réponse:

It's a problem caused by HikaShop's user plugin - in the onAfterRender method it has a line

$body = preg_replace('#(<form[^>]*class=".*form-validate.*"[^>]*>.*</(fieldset|table)>)#Uis','$1'.$data, $body,1);

which empties the value of body the regular expression doesn't match.

They should be checking the value of $body later before replacing the output.

Pouriez-vous corriger cela? Merci.
Lorenzo

Last edit: 9 hours 57 minutes ago by kilou.

Please Log in or Create an account to join the conversation.

  • Posts: 84960
  • Thank you received: 13852
  • MODERATOR
6 hours 11 minutes ago #370124

Bonjour,

Merci pour ce rapport détaillé et à Geraint pour avoir identifié la source du problème.

En effet, le plugin "HikaShop user synchronization" utilisait une expression régulière complexe dans la méthode onAfterRender pour injecter les champs personnalisés HikaShop dans le formulaire de profil utilisateur Joomla. Cette regex pouvait atteindre les limites de backtracking de PCRE (le moteur regex de PHP) lorsque la structure HTML de la page était complexe, comme c'est le cas avec EasyLayouts.

Quand la limite de backtracking est atteinte, preg_replace retourne NULL au lieu du contenu modifié, ce qui vidait effectivement le contenu de la page.

Nous avons corrigé ce problème en remplaçant la regex complexe par une approche utilisant des fonctions de manipulation de chaînes (stripos/substr) qui ne sont pas sujettes aux limites de backtracking. Une nouvelle build d'HikaShop avec le patch a été générée et publiée. Téléchargez à nouveau le paquet d'installation de la 6.2.0 sur notre site et installez-le sur le votre pour obtenir le patch. Cela devrait ensuite fonctionner correctement.

Please Log in or Create an account to join the conversation.

  • Posts: 675
  • Thank you received: 33
  • Hikashop Business Review Plugin
4 hours 51 minutes ago #370127

Bonjour,
étant donné que je ne vais pas tout de suite mettre à jour Hikashop à la version 6.2.0 pour cause de la nouvelle grille de mise en page (je dois effectuer des test de mon côté), pouvez-vous me donner le code et le fichier à modifier? Merci.

Please Log in or Create an account to join the conversation.

  • Posts: 84960
  • Thank you received: 13852
  • MODERATOR
36 minutes ago #370128

Bonjour,

Téléchargez le paquet d'installation et remplacez le fichier plugins/system/hikashopuser/hikashopuser.php par le fichier back/extensions/plg_system_hikashopuser/hikashopuser.php du paquet d'installation et cela devrait être bon.

Please Log in or Create an account to join the conversation.

Time to create page: 0.057 seconds
Powered by Kunena Forum