Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Résolu] Une erreur de syntaxe dans une balise utilisateur bloque tout CmsMadeSimpl
#1

Suite à un gros blocage de cmsmadesimple (version de 2011) (peut-être dû à une erreur de syntaxe dans une balise utilisateur ),
j'ai dû le réinstaller 3 fois (version 2.2.19), (sur l'hébergeur  ovh.com) toujours pour la même raison.

Toute tentative d'accès à index.php ou admin/index.php m'affiche :
"Parse error: syntax error, unexpected ',' in /home/...../www/cms2/lib/classes/class.usertagoperations.inc.php(306) : eval()'d code on line 16".
et je ne peux rien faire d'autre avec le cms, même le lendemain.
Heureusement, j'ai quand même accès au ftp.

Une fois, j'ai vu plus de détails sur l'erreur, avec le nom de la balise utilisateur,
mais ici, dans le fichier class.usertagoperations.inc.php, les ligne 16 et 306 sont vides ; l'erreur n'est donc pas dans ce fichier.
En fait, l'affichage de l'erreur se fait dans le fichier cms2/lib/include.php qui est appelé par index.php et admin/index.php,
à la ligne contenant $modops->LoadModules(!$CMS_ADMIN_PAGE);  ou $smarty = $_app->GetSmarty(); (suivant qu'on exécute index.php ou admin/index.php)
(j'ai  mis des "print ...", un peu partout dans include.php pour localiser la ligne qui provoque l'affichage )

Il semble que la notification de l'erreur soit mémorisée quelque part.
1. Pourriez-vous m'indiquer comment la supprimer ?
2. Cmsmadesimple pourrait-il  modifier  ses programmes pour éviter qu'il bloque tout sur une simple erreur de syntaxe ?

Cordialement
Raymond

Ajout de [Résolu] dans le titre + discussion fermée - JCE
#2

Déjà le 1er point important Version de PHP ?
Citation :"j'ai dû le réinstaller 3 fois version 2.2.19.."
- donc avant tu avais quelle version en 2011 une 1.10.x ? c'est une mise à jour ?
Citation :class.usertagoperations.inc.php, les ligne 16 et 306 sont vides
- sur ce fichier (V 2.2.19) en Ligne 306 je vois @eval($code);
ce qui confirme bien l’erreur "Parse error: syntax error, unexpected ',' in /...../lib/classes/class.usertagoperations.inc.php(306) : eval()'d code ....
- donc tu es sur de ta version ?
Nota pour ce ce fichier class.usertagoperations.inc.php la dernière modification date du 20/04/2022 rev
12740

J-C Etiemble v 2.2.xx
#3

Bonjour Jean-Claude. Merci pour votre réponse rapide.
Ma version actuelle de Php est 7.4
Avant, j'avais 5.4 ou 5.6, et le cms était probablement 1.9.4.3 (de 2011)
Et la version de mes 3 réinstallations est bien 2.2.19 (réinstallation complète, mise à jour impossible sur une version trop ancienne); en bas de ma page admin, j'ai bien "Copyright © CMS Made Simple™ 2.2.19 “Selkirk”.
Dans le fichier class.usertagoperations.inc.php, le @eval($code) est à la ligne 611 (beaucoup de lignes vides).
Et à la ligne 5, je trouve #©2004-2010 by Ted Kulp (ted@cmsmadesimple.org) : le fichier ne doit donc pas dater de 2022.
La ligne 16 indiquée en fin de notification change à chaque fois ; je suppose qu'elle indique le numéro de ligne dans le usertag à analyser. Les blocages se produisent toujours suite à "Envoyer" le texte de la balise. (mais il n'y a pas toujours blocage)
Merci votre attention.
Raymond
#4

Citation :Ma version actuelle de Php est 7.4
j'ai testé sous PHP 7.4.33 tout est OK
Citation :mes 3 réinstallations est bien 2.2.19
Tu as fait une installation depuis le fichier cmsms-2.2.19-install.zip ou cmsms-2.2.19-install.expanded.zip ?
Citation :Dans le fichier class.usertagoperations.inc.php, le @eval($code) est à la ligne 611 (beaucoup de lignes vides).
Et à la ligne 5, je trouve #©2004-2010 by Ted Kulp (ted@cmsmadesimple.org) : le fichier ne doit donc pas dater de 2022.
Ton fichier est incorrect
je te conseille de télécharger le fichier cmsms-2.2.19-install.expanded.zip
et de le décompacter ET dans le dossier /installer/data/ décompacte data.tar.gz dans un dossier "local" cela va te donner l’arborescence du cms
En FTP tu compares les fichiers du "local" avec ceux de ton site, tu dois voir les non conformités.

Nota la mise à jour depuis une 1.9.4.3 ça se fait normalement en local pour éviter les problèmes, puis ensuite envoyer en production.

J-C Etiemble v 2.2.xx
#5

Bonjour
Ma version de Php est7.4.33 comme vous.
C'est bien cmsms-2.2.19-install.expanded.zip que j'ai insttallé.
Le @eval($code) qui est passé de la ligne 306 à la ligne 611 dans class.usertagoperations.inc.php , c'est que le passage du ftp à mon ordi windows ajoute un \n à la fin de chaque ligne (le fichier passe 8367 à 8687 octets) , mais ce n'est pas ça qui doit poser problème.
Je vais tester la sauvegarde de balises utilisateurs pendant plusieurs jours sur un cms vide.

Une question : Quand on veut envoyer une balise qui a une erreur de syntaxe, au retour après signalement de l'erreur, on ne retrouve plus le texte contenant l'erreur, mais le texte précédemment enregistré.
Ma solution actuelle c'est de faire Ctrl A, Ctrl C avant d'envoyer, pour retrouver ensuite le texte contenant l'erreur avec Ctrl V.
Y a-t-il plus commode ?

Autre question : est-ce qu'on peut faire en sorte que les erreurs s'affichent lorsqu'on est connecté en admin, mais pas en production ?
Merci
Raymond
#6

Citation : c'est que le passage du ftp à mon ordi windows ajoute un \n à la fin de chaque ligne
Houla tu es sur ? ou alors ton éditeur ou ton FTP Windows il est bizarre !
et ce problème existe uniquement sur ce ficher ?
Citation :Quand on veut envoyer une balise qui a une erreur de syntaxe ..
tu as identifié la balise ?
Citation :Autre question : est-ce qu'on peut faire en sorte que les erreurs s'affichent lorsqu'on est connecté en admin, mais pas en production ?
Normalement non Wink dans ce cas temporairement tu mets le site en maintenance

J-C Etiemble v 2.2.xx
#7

Bonjour et merci pour tes réponses.
Pour " le passage du ftp à mon ordi windows ajoute un \n à la fin de chaque ligne",
tu dis " ce problème existe uniquement sur ce ficher ?"
- Non, mais pas sur tous, et à part les numéros de ligne, ça ne gêne pas.
Pour "Quand on veut envoyer une balise qui a une erreur de syntaxe, au retour après signalement de l'erreur, on ne retrouve plus le texte contenant l'erreur, mais le texte précédemment enregistré",
tu demandes "tu as identifié la balise ?"
- C'est toujours comme ça.
Je peux faire avec et on peut clore la discussion. Merci
#8

OK
A toi de faire la manip
- Une fois votre problème solutionné
- A la fin de la discussion, éditez votre premier message et ajoutez dans le début du titre le terme [Résolu] entre crochet. Cette information permettra aux futurs visiteurs de trouver plus rapidement une réponse à leur question

J-C Etiemble v 2.2.xx
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)